Witam.
Proszę o podpowiedź, gdzie szukać problemu.
Na Atmega32 pracującej jako Slave I2C mam wyświetlacz GLCD. Fragment kodu :
Tutaj raczej nie szukałbym problemu, ponieważ kiedy steruję to z innej Atmegi (8, 128) układ działa bardzo dobrze.
Fragment kodu nadajnika na Amega (uproszczony, przykładowy):
Licznik kręci się z zawrotną prędkością, ograniczoną chyba tylko instrukcjami "I2C_WaitTillStopWasSent();"
Teraz przesiadka na Atxmega (128, 256). TWI i tzw. "drivery" Atmela.
Funkcja wysyłająca coś po magistrali TWI:
Instrukcja, którą wysyłam dane:
Wszystko niby działa (namęczyłem się sporo zanim zaczęło), ale tylko przy zastosowaniu opóźnień pomiędzy instrukcjami. Jeśli opóźnienia są mniejsze niż dwadzieścia kilka milisekund, program przeskakuje dalej nie wykonując instrukcji. Przykładowo, jeśli pominąłbym opóźnienie tylko po instrukcji czyszczenia ekranu, ekran nie zostanie wyczyszczony, ale pozostałe napisy się wyświetlą.
Xmega pracuje na domyślnym zegarze 2MHz. Gdzie szukać przyczyny?
Proszę o podpowiedź, gdzie szukać problemu.
Na Atmega32 pracującej jako Slave I2C mam wyświetlacz GLCD. Fragment kodu :
Kod: C / C++
Tutaj raczej nie szukałbym problemu, ponieważ kiedy steruję to z innej Atmegi (8, 128) układ działa bardzo dobrze.
Fragment kodu nadajnika na Amega (uproszczony, przykładowy):
Kod: C / C++
Licznik kręci się z zawrotną prędkością, ograniczoną chyba tylko instrukcjami "I2C_WaitTillStopWasSent();"
Teraz przesiadka na Atxmega (128, 256). TWI i tzw. "drivery" Atmela.
Funkcja wysyłająca coś po magistrali TWI:
Kod: C / C++
Instrukcja, którą wysyłam dane:
Kod: C / C++
Wszystko niby działa (namęczyłem się sporo zanim zaczęło), ale tylko przy zastosowaniu opóźnień pomiędzy instrukcjami. Jeśli opóźnienia są mniejsze niż dwadzieścia kilka milisekund, program przeskakuje dalej nie wykonując instrukcji. Przykładowo, jeśli pominąłbym opóźnienie tylko po instrukcji czyszczenia ekranu, ekran nie zostanie wyczyszczony, ale pozostałe napisy się wyświetlą.
Xmega pracuje na domyślnym zegarze 2MHz. Gdzie szukać przyczyny?
