Hej,
Od dwóch dni walczę z układem STMPE811. Wzoruję się na artykułach Mirka oraz na rozdziale z zielonej książki.
Dostaję tylko jedno przerwanie z układu w momencie, gdy w buforze FIFO jest jedna próbka (czyli tak jak ustawiłem).
Wyniki odczytuję oraz robię reset flagi FIFO Threshold interrupt (do rejestru STMPE811_INT_STA wysyłam wartość 0x02). Nie resetuje to jednak stanu bufora. Bufor napełnia się do jego maksymalnej wartości 127 (odczytane z rejestru FIFO_SIZE) i nie zgłasza dalej przerwań (bo niby jak ma zgłaszać, skoro jest ustawione przerwanie na wystąpienie tylko jednej próbki a bufor jest napełniony). Układ wisi z napełnionym buforem do czasu, aż go ręcznie nie opróżnię bądź zresetuje (zakomentowane linijki przy obsłudze przerwania).
Takie zachowanie układu wydaje mi się poprawne, ale dlaczego w bibliotekach Mirka nie ma tego uwzględnionego? Jest tylko pod koniec wysyłanie do INT_STA wartości 0x02, ale to nie rozwiązuje mojego problemu. Co źle rozumuję? Byłem pewny, że wyczyści to stan bufora i znowu zostanie zgłoszone przerwanie a tak to układ wisi i czeka. Czy ta konfiguracja nie ogranicza wielkości bufora do 1?
Przy każdorazowym ręcznym resecie (0x01 do STMPE811_FIFO_STA a potem 0x00) układ działa OK, ale nie wydaje mi się, aby to było poprawne rozwiązanie, zważywszy na fakt, że Mirek tego nie robi a działa mu poprawnie.
Mikrokontroler STM32F103RET6
Schemat połączenia:
Kod obsługi:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Bardzo dziękuję za cenne rady i wskazówki
Pozdrawiam
Elektro_maniak