Mój problem polega na tym że komunikacja z 2 czujnikami na i2c przebiega poprawnie dopóki nie odpalę przerwań od input capture z timerów.
Komunikacja zawiesza się w losowo wybranych momentach, raz po 20 sekundach raz po 10 minutach. Gdy wyłączę przerwania to chodzi bez blednie. Mój procesor to stm32F103rb. Próbowałem już 3 sposobów na odczyt z i2c - DMA, przerwania o najwyższym priorytecie i bez przerwań. Nic to nie zmienia. Sprawdzałem także rożne prędkości i2c - to samo. Komunikacja wywala sie w różnych miejscach - przy sprawdzaniu bitu SB czy to ADDR. Po wystąpieniu problemu z ADDR można zrestartować i2c i chodzi dalej ale po zawieszeniu SB już tylko reset zasilania ratuje sytuacje. I bardzo ważne, nie korzytam z bilbiotek od ST tylko z definów i paru funkcji z biblioteki libopenstm32.
Męczę się z tym już nie wiem ile. Zna ktoś jakieś rozwiązanie ?
Komunikacja zawiesza się w losowo wybranych momentach, raz po 20 sekundach raz po 10 minutach. Gdy wyłączę przerwania to chodzi bez blednie. Mój procesor to stm32F103rb. Próbowałem już 3 sposobów na odczyt z i2c - DMA, przerwania o najwyższym priorytecie i bez przerwań. Nic to nie zmienia. Sprawdzałem także rożne prędkości i2c - to samo. Komunikacja wywala sie w różnych miejscach - przy sprawdzaniu bitu SB czy to ADDR. Po wystąpieniu problemu z ADDR można zrestartować i2c i chodzi dalej ale po zawieszeniu SB już tylko reset zasilania ratuje sytuacje. I bardzo ważne, nie korzytam z bilbiotek od ST tylko z definów i paru funkcji z biblioteki libopenstm32.
Męczę się z tym już nie wiem ile. Zna ktoś jakieś rozwiązanie ?