PORT átkonfigurálás menet közben

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
HPMaster
Bitmanipulátor
Hozzászólások: 138
Csatlakozott: 2008. március 10. hétfő, 6:00
Tartózkodási hely: Budapest IX. ker

PORT átkonfigurálás menet közben

HozzászólásSzerző: HPMaster » 2016. október 7. péntek, 12:34

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: 9961
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

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

HozzászólásSzerző: Robert » 2016. október 7. péntek, 18:08

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
Tartózkodási hely: Budapest IX. ker

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

HozzászólásSzerző: HPMaster » 2016. október 7. péntek, 19:38

Köszönöm, ez bejött! :)

Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 65
Csatlakozott: 2005. április 22. péntek, 6:00

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

HozzászólásSzerző: Csuhas » 2016. október 13. csütörtök, 14:06

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: 9961
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

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

HozzászólásSzerző: Robert » 2016. október 13. csütörtök, 19:18

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: 65
Csatlakozott: 2005. április 22. péntek, 6:00

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

HozzászólásSzerző: Csuhas » 2016. október 13. csütörtök, 20:32

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: 9961
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

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

HozzászólásSzerző: Robert » 2016. október 13. csütörtök, 20:51

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: 65
Csatlakozott: 2005. április 22. péntek, 6:00

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

HozzászólásSzerző: Csuhas » 2016. október 13. csütörtök, 21:17

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.


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég