Od kilku dni konstruuję linijkę diodową zbudowaną wstępnie z 4 matryc 8x8 (wspólna katoda). Zasada działania jest taka - linie wierszy są sterowane przez tranzystory pnp z Portu D Atmegi8, natomiast do sterowania kolumnami wykorzystałem drivery (SCT2024). Wstępnie układ zmontowałem i podłączyłem wg załączonego schematu.
Jestem początkującym programistą, więc mam bardzo duży problem z zaprogramowaniem układu. Poniżej prezentuję listing programu którym chciałem przetestować poprawność układu i niestety pojawiają się problemy:
Z wypożyczonych książek oraz z informacji od osób które mi bardzo pomagają, dowiedziałem się że najlepiej sterować układem wykorzystując SPI. Niestety sprzętowe SPI kompletnie mi nie działa (tzn. przez chwilę idą 'jakiś sygnały' po czym układ zamiera. Programowe SPI działa tak, że gdy daję napięcie na jeden wiersz, na wszystkich matrycach idzie linijka diodowa - układ działa prawidłowo, natomiast gdy odblokowuję większą ilość wierszy - matryce po max 3 sekundach się zawieszają (co dziwne po gdy załączam tylko dwie matryce to działa nawet przy odblokowanych wszystkich wierszach, na 3-4 matrycach zawsze się zawiesza.) Używam programatora USBasp domowej roboty, oraz kompilatora Bascom avr 1.11.9.8
Kłopoty z SPI to nie mój jedyny problem, chciałbym to wszystko jakoś zaprogramować, ale moja wiedza jest bardzo słaba, odniosłem pewne sukcesy programując jedną matryce wg książki M. Wiązania, natomiast zupełnie nie radzę sobie z 4 matrycami.
Będę wdzięczny za okazaną pomoc, bo nie ukrywam, że jest to moja praca zaliczeniowa i mam niewiele czasu...
Jestem początkującym programistą, więc mam bardzo duży problem z zaprogramowaniem układu. Poniżej prezentuję listing programu którym chciałem przetestować poprawność układu i niestety pojawiają się problemy:
Z wypożyczonych książek oraz z informacji od osób które mi bardzo pomagają, dowiedziałem się że najlepiej sterować układem wykorzystując SPI. Niestety sprzętowe SPI kompletnie mi nie działa (tzn. przez chwilę idą 'jakiś sygnały' po czym układ zamiera. Programowe SPI działa tak, że gdy daję napięcie na jeden wiersz, na wszystkich matrycach idzie linijka diodowa - układ działa prawidłowo, natomiast gdy odblokowuję większą ilość wierszy - matryce po max 3 sekundach się zawieszają (co dziwne po gdy załączam tylko dwie matryce to działa nawet przy odblokowanych wszystkich wierszach, na 3-4 matrycach zawsze się zawiesza.) Używam programatora USBasp domowej roboty, oraz kompilatora Bascom avr 1.11.9.8
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd = Output
Config Pinb.1 = output
portd = &b11111110 'odblokowana pierwszy wiersz matrycy
Config Spi = Soft , Din = Pinb.4 , Dout = Portb.3 , Ss = PortB.2 , Clock = Portb.5
Spiinit
LA alias portb.1
dim w1(4) as byte
LA=1
do
w1(1)=&b01010101
w1(2)=&b01010101
w1(3)=&b01010101
w1(4)=&b01010101
spiout w1(1),4
LA = 1
waitms 10
LA = 0
w1(1)=&b10101010
w1(2)=&b10101010
w1(3)=&b10101010
w1(4)=&b10101010
waitms 50
spiout w1(1),4
lA=1
waitms 10
lA=0
waitms 50
loop
end
Kłopoty z SPI to nie mój jedyny problem, chciałbym to wszystko jakoś zaprogramować, ale moja wiedza jest bardzo słaba, odniosłem pewne sukcesy programując jedną matryce wg książki M. Wiązania, natomiast zupełnie nie radzę sobie z 4 matrycami.
Będę wdzięczny za okazaną pomoc, bo nie ukrywam, że jest to moja praca zaliczeniowa i mam niewiele czasu...
