 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
videosony Član

Pridružen-a: Čet 15 Nov 2007 1:32 Prispevkov: 21 Aktiv.: 0.10 Kraj: Maribor
|
Objavljeno: Ned Nov 18, 2007 1:00 am Naslov sporočila: Bascom AVR MEGA8 UART Branje UDR |
|
|
Pozdravljeni!
imam povezana 2 ATMEGA8 AVRja. Prvi šteje od 0-100 in vsakih 500ms pošlje številko na UART z ukazom PRINT.
Drugi ob Rx prekinitvi gre v podprogram (dela) in bi moral to številko prebrat, to mi ne gre.
če uporabim ukaz :
PRINTBIN UDR
mi na monitorju izpiše pravo vrednost v desetiški obliki (0-99)
Probal sem ukaz BINVAL, MAKEDEC,... nič mi ni delalo.
Torej jaz bi rad prišel do prebrane vrednosti v desetiški obliki in bi jo uporabil naprej v podprogramu.
hvala |
|
Nazaj na vrh |
|
 |
strobos Član

Pridružen-a: Sre 24 Sep 2003 12:19 Prispevkov: 726 Aktiv.: 3.06 Kraj: Brežice
|
Objavljeno: Ned Nov 18, 2007 1:32 am Naslov sporočila: |
|
|
Za pošiljanje uporabi printbin, za sprejem pa inputbin. Potem, ko sprejmeš, lahko pretvoriš v kaj drugega, ki ti bo ustrezalo.
Lp |
|
Nazaj na vrh |
|
 |
videosony Član

Pridružen-a: Čet 15 Nov 2007 1:32 Prispevkov: 21 Aktiv.: 0.10 Kraj: Maribor
|
Objavljeno: Ned Nov 18, 2007 2:05 am Naslov sporočila: |
|
|
Hvala STROBOS !!!
Res nisem pričakoval tako hitrega odgovora.
Zdaj dela z eno napako in sicer izpisuje mi vsako drugo številko npr:
1,3,5,...
ali
0,2,4,....
del programa:
ODDAJNI AVR:
dim i as byte
do
if i=100 then i=0
incr I
prinbin I
waitms 500
loop
Sprejemni AVR:
dim i as byte
...prekinitvena rutina....
rx_interrupt:
i=udr
inputbin i
print i
lp |
|
Nazaj na vrh |
|
 |
strobos Član

Pridružen-a: Sre 24 Sep 2003 12:19 Prispevkov: 726 Aktiv.: 3.06 Kraj: Brežice
|
Objavljeno: Ned Nov 18, 2007 2:15 am Naslov sporočila: |
|
|
Hm, jaz ne delam z interrupti, verjetno je tukaj problem, da ti prebere vsako drugo številko. Jaz uporabim na sprejemni strani samo:
Dim vrednost as byte
do
Inputbin Vrednost
If Vrednost = .... Then
........
........
end if
........
loop
Lp |
|
Nazaj na vrh |
|
 |
strobos Član

Pridružen-a: Sre 24 Sep 2003 12:19 Prispevkov: 726 Aktiv.: 3.06 Kraj: Brežice
|
Objavljeno: Ned Nov 18, 2007 2:33 am Naslov sporočila: |
|
|
videosony je napisal/a: |
Sprejemni AVR:
dim i as byte
...prekinitvena rutina....
rx_interrupt:
i=udr
inputbin i
print i
lp |
Poskusi izbrisati vrstico i=udr ali pa vrstico inputbin i, ker zgleda, da vsaka vrstica bere na novo. Ukaz inputbin čaka, dokler ni znaka na vhodu.
Lp |
|
Nazaj na vrh |
|
 |
videosony Član

Pridružen-a: Čet 15 Nov 2007 1:32 Prispevkov: 21 Aktiv.: 0.10 Kraj: Maribor
|
Objavljeno: Ned Nov 18, 2007 2:57 am Naslov sporočila: |
|
|
Še enkrat hvala!
No skoraj sem že pospravil vse, nakar sem videl tvoj odgovor in ga preizkusil.
Zdaj pa res vse dela kot mora.
Izbrisal sem:
I=UDR
Hvala za pomoč
lp Boštjan |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|