Witam.
Układ następujący.
Do portu mastera dołączone są mikroswitch'e (8 szt). ich wciśnięcie powoduje zapalenie sie LEDa podłączonego do odpowiedniego bitu w innym porcie (atmega 16)
Leci to przez RS do slawe'a (atmega8) i zapala analogiczy bit.
Układ prosty, działa bez problemu.
Po przesiadce na 128 (to moja pierwsza przygoda z tą kością) działa idealnie.
Jako, że urządzenie będzie potrzebowało dwóch portów skonfigurowałem i podłączyłem do PC.
Teraz wciśniecie przycisku zapala LED na masterze, slave'ie i wysyła odpowiednią komende do PC. Super działa.
Docelowo do Slavea tez bedą podpięte przyciski więc wcisniecie takowego powoduje wyslanie komunikatu do mastera.
W tym miejscu działanie drugiego uarta jest bez znaczenia.
postanowiłem ze komendy od Slavea'a bede odbierał w przerwaniu od Uarta.
Robiłem to wiele razy i zawsze działało bez problemu.
enable interrupts
enable urxc
....
on urxc
kod odbioru
return
Teraz , w atmedze128 komenda enable urxc powoduje ze czas wykonania pętli (tylko obsługa przycisków i print na port RS) znacznie sie wydłuża.
Zapalam lampkę przed wysłaniem czegokolwiek na port i gaszę po wysłaniu.
Jest to dosłownie błysk
zatem wina lezy w pętli.
Do
If PinF.7 = 0 Then
Waitms 50
If PinF.7 = 0 Then
Toggle s.5
Call wyslij(m)
Waitms 50
End If
End If
Loop
Sub wyslij
portg.4 = 1
Print s.5
Open "Com2:" For Binary As #1
Print #1 , s.5
Close #1
Waitms 2
portg.4 = 0
End Sub
End
Pytanie.
wejscie RXD0 podłaczone do masy uniemożliwia odczyt przez ISP, do plusa jest OK, program wykonuje sie tak szybko jak powinien.
Odłaczenie od plusa i ponowne przypięcie powoduje zwolnienie działania. Tak samo z minusem zasilania.
Pin RXD0 pierwszego uarta dzielony jest z PDI.
Próbowałem wyłączyć programowanie szeregowe w bascomie ale nie przyjmuje tej komendy.
Prosze o pomoc.
Być moze winę ponosi moduł z atmegą który nabyłem na naszym portalu aukcyjnym. Ale chciałbym ze była to mój bład w programowaniu.
Pozdrawiam
Układ następujący.
Do portu mastera dołączone są mikroswitch'e (8 szt). ich wciśnięcie powoduje zapalenie sie LEDa podłączonego do odpowiedniego bitu w innym porcie (atmega 16)
Leci to przez RS do slawe'a (atmega8) i zapala analogiczy bit.
Układ prosty, działa bez problemu.
Po przesiadce na 128 (to moja pierwsza przygoda z tą kością) działa idealnie.
Jako, że urządzenie będzie potrzebowało dwóch portów skonfigurowałem i podłączyłem do PC.
Teraz wciśniecie przycisku zapala LED na masterze, slave'ie i wysyła odpowiednią komende do PC. Super działa.
Docelowo do Slavea tez bedą podpięte przyciski więc wcisniecie takowego powoduje wyslanie komunikatu do mastera.
W tym miejscu działanie drugiego uarta jest bez znaczenia.
postanowiłem ze komendy od Slavea'a bede odbierał w przerwaniu od Uarta.
Robiłem to wiele razy i zawsze działało bez problemu.
enable interrupts
enable urxc
....
on urxc
kod odbioru
return
Teraz , w atmedze128 komenda enable urxc powoduje ze czas wykonania pętli (tylko obsługa przycisków i print na port RS) znacznie sie wydłuża.
Zapalam lampkę przed wysłaniem czegokolwiek na port i gaszę po wysłaniu.
Jest to dosłownie błysk
zatem wina lezy w pętli.
Do
If PinF.7 = 0 Then
Waitms 50
If PinF.7 = 0 Then
Toggle s.5
Call wyslij(m)
Waitms 50
End If
End If
Loop
Sub wyslij
portg.4 = 1
Print s.5
Open "Com2:" For Binary As #1
Print #1 , s.5
Close #1
Waitms 2
portg.4 = 0
End Sub
End
Pytanie.
wejscie RXD0 podłaczone do masy uniemożliwia odczyt przez ISP, do plusa jest OK, program wykonuje sie tak szybko jak powinien.
Odłaczenie od plusa i ponowne przypięcie powoduje zwolnienie działania. Tak samo z minusem zasilania.
Pin RXD0 pierwszego uarta dzielony jest z PDI.
Próbowałem wyłączyć programowanie szeregowe w bascomie ale nie przyjmuje tej komendy.
Prosze o pomoc.
Być moze winę ponosi moduł z atmegą który nabyłem na naszym portalu aukcyjnym. Ale chciałbym ze była to mój bład w programowaniu.
Pozdrawiam
