Witam,
Korzystając z bibliotek Atmela do obsługi sprzętowego TWI natknąłem się na następujący problem. Otóż transmisja działa w moim przypadku tylko z wewnętrznym taktowaniem 32 Mhz i częstotliwości TWI 400 kHz. Zegar załączam w ten sposób:
Oczywiście dodaję definicję w toolchain-> symbol: F_CPU=32000000UL
I tutaj wszystko działa. Jeżeli zaś zmienię częstotliwość TWI na 100 kHz to przestaje reagować. Tak samo kiedy zmienię źródło taktowania. Na przykład próbowałem zewnętrznego kwarcu 8 MHz, który konfiguruję tak:
Oczywiście zmieniam F_CPU. Nie ruszam fusebitów, ale może powinienem? Chociaż wydawało mi się, że w tych procesorach wszystko konfigurujemy programowo.
Czy ktoś potrafi mi odpowiedzieć co robię nie tak? A może ktoś spotkał się z podobnymi problemami?
Korzystając z bibliotek Atmela do obsługi sprzętowego TWI natknąłem się na następujący problem. Otóż transmisja działa w moim przypadku tylko z wewnętrznym taktowaniem 32 Mhz i częstotliwości TWI 400 kHz. Zegar załączam w ten sposób:
Kod: C / C++
Oczywiście dodaję definicję w toolchain-> symbol: F_CPU=32000000UL
I tutaj wszystko działa. Jeżeli zaś zmienię częstotliwość TWI na 100 kHz to przestaje reagować. Tak samo kiedy zmienię źródło taktowania. Na przykład próbowałem zewnętrznego kwarcu 8 MHz, który konfiguruję tak:
Kod: C / C++
Oczywiście zmieniam F_CPU. Nie ruszam fusebitów, ale może powinienem? Chociaż wydawało mi się, że w tych procesorach wszystko konfigurujemy programowo.
Czy ktoś potrafi mi odpowiedzieć co robię nie tak? A może ktoś spotkał się z podobnymi problemami?