PORT átkonfigurálás menet közben

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
HPMaster
Bitmanipulátor
Hozzászólások: 138
Csatlakozott: 2008. március 10. hétfő, 6:00

PORT átkonfigurálás menet közben

Hozzászólás Szerző: HPMaster »

Sziasztok!

A következő a problémám, hogy a HW UART kivezetésen szeretnék bekapcsoláskor jelszintet ellenőrizni, és annak állapota szerint cselekedni, de miután ez megvolt, már a soros portra lenne szükségem.

Konkrétabban:

Kód: Egész kijelölése

$regfile = "m328pdef.dat"
$crystal = 8000000

' Bekapcsoláskor törljük a beállított értékeket, ha TX (PORTD.1) földre van kötve!
Config Pind.1 = Input   ' TX láb bemenetnek
Set Pind.1			  ' TX láb felhúzó bekapcsolása

If Pind.1 = 0 Then
	'CSINÁLOK VALAMIT
End If

Reset Pind.1		' TX láb felhúzó kikapcsolása ???

$baud = 9600		' UART baudrate konfig
Ez így nyilván nem működik. De hogy tudnám mégis "felülkonfigurálni" a már beállított PORTD.1 lábat, vagy törölni az előző konfigját, hogy ne zavarja a sorosporti beállítást?

Köszönet
HP
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: PORT átkonfigurálás menet közben

Hozzászólás Szerző: Robert »

Egyszerűbb:

Kód: Egész kijelölése

' UART Rx és TX tiltása:
UCSR0B.RXEN0=0
UCSR0B.TXEN0=0
'innentől sima IO a POrtD.0/PortD.1 láb
.
.
.
.
'Megin' kell a sorosport
UCSR0B.RXEN0=1
UCSR0BTXEN0=1
Lehet megy a UCSR0B előtag nélkül is.
http://www.atmel.com/Images/Atmel-8271- ... mplete.pdf

Tipp: A soros 3 db regisztert elmenteném a beállítások után és azt írnám vissza. De ezt kiválthatja a Config COM1:.... sor is.
http://www.tavir.hu - a gazda :)
Avatar
HPMaster
Bitmanipulátor
Hozzászólások: 138
Csatlakozott: 2008. március 10. hétfő, 6:00

Re: PORT átkonfigurálás menet közben

Hozzászólás Szerző: HPMaster »

Köszönöm, ez bejött! :)
Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 69
Csatlakozott: 2005. április 22. péntek, 6:00

Re: PORT átkonfigurálás menet közben

Hozzászólás Szerző: Csuhas »

Egy kicsit más kérdésem van de ez is port átkonfigurálás menet közben. Van egy eszköz ami a külvilághoz vagy soros vonalon vagy BT kapcsolaton csatlakozik. A program nagy és rengeteg írás olvasás van benne. Azt szeretném hogy menet közben a teljes kommunikációt át lehessen tenni az egyik portról a másikra. Azaz a #1 és #2 channeleket kellene a program futása közben cserélgetni. A két channel egyébként két hw soros port egy xmega prociban.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: PORT átkonfigurálás menet közben

Hozzászólás Szerző: Robert »

Hülye tipp:

Kód: Egész kijelölése

dim holkommunikaljak as byte
holkommunikaljak=1 'alapertek
if holkommikaljak=1 then 
	print #1,kiirva
	else
	print #2,kiirva
endif
Gondolom ennél elegánsabb megoldás kellene...

A programfutás alatt kell váltani, vagy fordítási direktíva kell legyen?
Ha futás alatt, akkor a kiírást tedd szubrutinba:

Kód: Egész kijelölése

print #, kiiras
helyett

Kód: Egész kijelölése

call printkiiras(melyikport, mit)
http://www.tavir.hu - a gazda :)
Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 69
Csatlakozott: 2005. április 22. péntek, 6:00

Re: PORT átkonfigurálás menet közben

Hozzászólás Szerző: Csuhas »

Elég nagy program sok sok io utasítással. Azt hiszem elfogadom a javaslatod és lecserélem az összes print printbin, input, inkey, keypressed, ischarwaitng stb utasítást egy egy szubrutinra. Nem elegáns de működik, sőt megvan az az előnye hogy echózhatok mindkét portra, így mindegy honnan jön a parancs mind a parancs mind a válasz látszik mindkét porton, a nagyobb mennyiségű adatkiolvasás pedig mehet csak a kiválasztott portra.

Egyébként mintha volna valami buart_xxx alakú kitüntetett változó ami valami ilyesmire szolgál, de még nem volt időm még utána nézni, és csak jövő héten leszek újra gép közelében. Ha lehetne portot cserélni akkor a másik portra való echózást meg lehetne oldani a soros port it-be való csatlakozással.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: PORT átkonfigurálás menet közben

Hozzászólás Szerző: Robert »

Van valami $serial1=$key vagy hasonló formátumú eljárás. A PS2 billentyűzetet íratta sorosportra így. De nem találom a súgóban:(
http://www.tavir.hu - a gazda :)
Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 69
Csatlakozott: 2005. április 22. péntek, 6:00

Re: PORT átkonfigurálás menet közben

Hozzászólás Szerző: Csuhas »

Van egy sample xm128a1.bas amiben egy ilyen részlet található

Kód: Egész kijelölése

Dim Buart_channel As Byte
For Buart_channel = 0 To 7                                  'when using a variable, notice that the index is 0 based !
    Print #buart_channel , "UART :" ; Buart_channel
    B = Inkey(#buart_channel)                               ' check for data
    If B <> 0 Then                                          'if we have data it means we are connected to some data source
       B = Waitkey(#buart_channel)                          ' wait for more data this will block
       Input #buart_channel , "Name " , S
    End If
Next
Ez szép de félek hogy nem működik bufferelt soros porton, amire viszont szükségem van.
Válasz küldése