Jak wyeliminować dodatkowe bajty przy odbiorze danych przez SPI w Bascom AVR?

SPI i Bascom AVR





Poprzedni Następny
Wiadomość
Spis treści
From: "roxy" <kicak_at_nospam_o2.pl>
Subject: SPI i Bascom AVR
Date: Sat, 19 Feb 2005 00:15:10 +0100


Witam Szanownych Czytelnikow
Mam pewien problem z uzywaniem SPI pod bascomem
Dwa uC komunikują sie po SPI - at90s2313 wysyla 1 bajt a At90s8515 odbiera 1
bajt danych. Odebrany bajt jest wyswietlany na wyswietlaczu LCD 2x16.
Problem w tym ze 8515 odbiera (lub wyswietla na LCD) jeszcze jakies smieci
za odebranym bajtem.
A to fragment kodu dla 8515

Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = No ,
Polarity = Low , Phase = 0 , Clockrate = 128
Spiinit
.
.
.
Dim Nr As Byte
Spi_isr:
Cls
Nr = Spdr
Lcd " odebrano: "
Lcd Nr
' Wait 2
Reset Portd.6
Waitms 50
Set Portd.6
Return

Te smieci to prawdopodobnie dwa bajty bo na wyswietlaczu pojawia sie
przykladowo napis "odebrano: 45" i tuz za przeslanym bajtem (np 45) czarna
kratka oraz znak srednika. Z tego wnioskuje nie wiadomo skad pojawiaja sie
jakies 2 bajty smieci.
Co moze byc przyczyna tego bledu?




Poprzedni Następny
Wiadomość
Spis treści
From: "BYRRT!" <usun.to.byrrt_at_nospam_op.pl>
Subject: Re: SPI i Bascom AVR
Date: Sat, 19 Feb 2005 02:16:11 +0100


Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = No ,
Polarity = Low , Phase = 0 , Clockrate = 128
Spiinit
.
Nie wiem czemu (jak dojdziesz do tego jestem bardzo zainteresowany) ale ja
probowalem stosowac SPI=HARD i niestety nigdy mi sie to nie udawalo -
wszystko szalalo lub nie dzialalo w ogole!!! Stosujac SPI=SOFT dziala no ale
to juz nie jest spi... ale dziala :)



Poprzedni Następny
Wiadomość
Spis treści
From: "J-23" <j-23_at_nospam_ask.me>
Subject: Re: SPI i Bascom AVR
Date: Sat, 19 Feb 2005 09:37:19 +0100


wszystko szalalo lub nie dzialalo w ogole!!! Stosujac SPI=SOFT dziala no
ale
to juz nie jest spi... ale dziala :)

czyli C jednak leszy? :)



Poprzedni Następny
Wiadomość
Spis treści
From: "BYRRT!" <usun.to.byrrt_at_nospam_op.pl>
Subject: Re: SPI i Bascom AVR
Date: Sat, 19 Feb 2005 12:10:54 +0100


czyli C jednak leszy? :)

nie wiem - w tym przypadku pewnie robie cos zle... nigdzie nie znalazlem
przykladu zastosowania sprzetowego SPI pod Bascom'em - byc moze to jakis
szczegol...

C daje napewno wieksza wladze nad prockiem, jest bardziej oszczedny w
zasobach..
Nie da sie ukryc ze Bascom ze swoim jezykiem Basic jest prostrzy...



Poprzedni Następny
Wiadomość
Spis treści
From: "roxy" <kicak_at_nospam_o2.pl>
Subject: Re: SPI i Bascom AVR
Date: Sat, 19 Feb 2005 12:52:12 +0100



Nie wiem czemu (jak dojdziesz do tego jestem bardzo zainteresowany) ale ja
probowalem stosowac SPI=HARD i niestety nigdy mi sie to nie udawalo -
wszystko szalalo lub nie dzialalo w ogole!!! Stosujac SPI=SOFT dziala no
ale
to juz nie jest spi... ale dziala :)


Juz rozwiazalem problem.
Dokladnie nie wiem co bylo przyczyną ale wykonalem dwie czynnosci ktore
mogly powodowac ze odbieralem jakies smieci (a w konsekwencji program tez
sie niekiedy sypal).
1. Zmienilem polaczenie Pinu ENA wyswietlacza LCD z uC (z PD2-INT0
zmienilem go na PD7.).
2. Wywalilem z przerwania czasochlonne "czynnosci" czyli:
Wait 2
CLS
i LCD "......"
wstawilem w procedure obslugi przerwan flagi a wyswietlacz obsluguje w
programie glownym.
Nie wiem co z tych dwoch rzeczy moglo byc przyczyną ale POMOGLO!