Witam
Projektuje LED CUBE'a 7x7x7. Całość ładnie pięknie działała. Każdy poziom cube'a jest sterowany za pomocą tranzystora. Wiersze są sterowane przez rejestry przesuwne 74HC595. Jednak projekt nieco się rozrósł, i postanowiłem dołożyć obsługę kart SD przez system AVR-DOS i zapisywałbym efekty na SD. okazało się, że odczyt takiego efektu zakłóca się z przerwaniami od timer0 odpowiedzialnego za multiplexing. Mam kwarc 12MHz, (ale będę zmieniał na 11,0592MHz), timer z prescalerem 256, a po każdym przerwaniu ładowana jest wartosc timer0=150 (czyli 105 cykli). Mam kłopot z przeliczeniem tego na Hz, dlatego mierzyłem jeden z poziomów kostki miernikiem i pokazał mi częstotliwość ok.60Hz i wypełnienie 14%. Problem w tym, że jeśli chce zmniejszyć częstotliwość odświeżania (np. do 25Hz) to ledy zaczynają migotać.
Ale wracając. Wpadłem na pomysł żeby dodać drugi procesor (np.attiny2313) który zająłby się multiplexacją. Potrzebowałbym wtedy przesłać z Mastera(atmega32) do Slave 49 bajtów danych. Próbowałem to zrealizować przez polecenia shiftin i shiftout, ale nie zdało to egzaminu.
Zastanawiałem się nad sprzętowym buforowanym UARTem, który by przesyłał dane z prędkością 115200bps (stąd kwarc 11,0592) lub poprzez SPI, ale nie wiem czy nie zakłóci to komunikacji z kartą SD.
Który z sposobów (SPI czy UART) byłby najlepszy dla zastosowania? Oraz prosiłbym ewentualnie o radę lub sugestię dot. stabilnej obsługi przesyłu.
Projektuje LED CUBE'a 7x7x7. Całość ładnie pięknie działała. Każdy poziom cube'a jest sterowany za pomocą tranzystora. Wiersze są sterowane przez rejestry przesuwne 74HC595. Jednak projekt nieco się rozrósł, i postanowiłem dołożyć obsługę kart SD przez system AVR-DOS i zapisywałbym efekty na SD. okazało się, że odczyt takiego efektu zakłóca się z przerwaniami od timer0 odpowiedzialnego za multiplexing. Mam kwarc 12MHz, (ale będę zmieniał na 11,0592MHz), timer z prescalerem 256, a po każdym przerwaniu ładowana jest wartosc timer0=150 (czyli 105 cykli). Mam kłopot z przeliczeniem tego na Hz, dlatego mierzyłem jeden z poziomów kostki miernikiem i pokazał mi częstotliwość ok.60Hz i wypełnienie 14%. Problem w tym, że jeśli chce zmniejszyć częstotliwość odświeżania (np. do 25Hz) to ledy zaczynają migotać.
Ale wracając. Wpadłem na pomysł żeby dodać drugi procesor (np.attiny2313) który zająłby się multiplexacją. Potrzebowałbym wtedy przesłać z Mastera(atmega32) do Slave 49 bajtów danych. Próbowałem to zrealizować przez polecenia shiftin i shiftout, ale nie zdało to egzaminu.
Zastanawiałem się nad sprzętowym buforowanym UARTem, który by przesyłał dane z prędkością 115200bps (stąd kwarc 11,0592) lub poprzez SPI, ale nie wiem czy nie zakłóci to komunikacji z kartą SD.
Który z sposobów (SPI czy UART) byłby najlepszy dla zastosowania? Oraz prosiłbym ewentualnie o radę lub sugestię dot. stabilnej obsługi przesyłu.