Mam układ z wyświetlaczem 9x7segm. Wyświetlacz nie może migać, ani przestawać świecić przez chwilę, a jednocześnie muszę odczytywać dane z szyny i2c.
Mam więc 2 pytania:
1. Czy szyna 100khz nie powinna czasem zczytać jednego bajtu z układu w czasie <1ms? Bo moja tego nie robi, ale jakoś mi się to nie podoba...
2. Jak inaczej można rozwiązać ten problem? Korzystać z i2c i jednocześnie nie zatrzymać wyświetlacza?
Multipleksowanie wyswietlacza i odczytywanie danych z i2c
Kulpina - pytania dwa:
1. Jaki język programowania (chociaż domyślam się, że o C chodzi)?
2. Jaki uP?
Co do sposobu obsługi I2C - możesz zrealizować to w ten sposób, że pod koniec przerwania odpowiedzialnego za odświeżanie wyświetlacza będzie generowany takt dla I2C. Masz wtedy pewność, że nic nie będzie przeszkadzać w generowaniu "obrazu", a jednocześnie poszczególne bity będą wysyłane na szynę danych - nie ma przecież minimalnej prędkości transmisji dla I2C.
Można też wykorzystać sprzętowy interfejs TWI - co jest dosyć prostym rozwiązaniem
1. Jaki język programowania (chociaż domyślam się, że o C chodzi)?
2. Jaki uP?
Co do sposobu obsługi I2C - możesz zrealizować to w ten sposób, że pod koniec przerwania odpowiedzialnego za odświeżanie wyświetlacza będzie generowany takt dla I2C. Masz wtedy pewność, że nic nie będzie przeszkadzać w generowaniu "obrazu", a jednocześnie poszczególne bity będą wysyłane na szynę danych - nie ma przecież minimalnej prędkości transmisji dla I2C.
Można też wykorzystać sprzętowy interfejs TWI - co jest dosyć prostym rozwiązaniem
-
keruseykaryu
No tak, oczywiście język to C a procesor mega8.
Najbardziej mnie dziwi to, że nie jestem w stanie zmienić częstotliwości taktowania na wyższą. Przy 4mhz wszystko chodzi bardzo ładnie. Wszystko zdąża się wyświetlić i odebrać... Przy 8hmz mimo ustawiania przerwań na ten sam czas i kombinowania ze wszystkim mam jakby kilkaset razy wolniejsze i2c (mimo, że i to zmieniałem) i wtedy widać wyraźne migania podczas odczytu...
Narazie postanowiłem wrócic do 4mhz i jakoś sobie przy nich poradzić i wreszcie ten program skonczyć
Najbardziej mnie dziwi to, że nie jestem w stanie zmienić częstotliwości taktowania na wyższą. Przy 4mhz wszystko chodzi bardzo ładnie. Wszystko zdąża się wyświetlić i odebrać... Przy 8hmz mimo ustawiania przerwań na ten sam czas i kombinowania ze wszystkim mam jakby kilkaset razy wolniejsze i2c (mimo, że i to zmieniałem) i wtedy widać wyraźne migania podczas odczytu...
Narazie postanowiłem wrócic do 4mhz i jakoś sobie przy nich poradzić i wreszcie ten program skonczyć
-
keruseykaryu