Poczyniłem programik w C do zliczania impulsów z zewn. wejścia T1.
Program zlicza impulsy do T1 w czasie ustalanym przez T0. Sterowanie jest tak ustawione że pierwsze odliczanie wpisywane jest do F1, drugie do F2, trzecie do F3 i tak w kółko.
Na czas wyświetlania na LCD wyłączyłem przerwania. Wszystko działa ale nie do końca prawidłowo.
Problem polega na tym że podczas stabilnej pracy generatora impulsów zewn.
stany F1,F2 i F3 powinny być takie same i stabilne w czasie. Tak jednak nie jest.
Na 38000 zliczanych impulsów stany wahają się +/-200 i te wahania pływają.
Aby to ustalić dokładnie czeka mnie wgłębna analiza kodu. Podejrzewam że kompilator C "wymyślił" coś poza kontrolą i należy użyć wstawek asm.
Moje pytanie. Jakie powinienem spełnić podstawowe warunki w konstrukcji programu aby było b.dokladnie czyli +/- 1 impuls. Załączam ustawienie liczników i procedurę przerwania
Program zlicza impulsy do T1 w czasie ustalanym przez T0. Sterowanie jest tak ustawione że pierwsze odliczanie wpisywane jest do F1, drugie do F2, trzecie do F3 i tak w kółko.
Na czas wyświetlania na LCD wyłączyłem przerwania. Wszystko działa ale nie do końca prawidłowo.
Problem polega na tym że podczas stabilnej pracy generatora impulsów zewn.
stany F1,F2 i F3 powinny być takie same i stabilne w czasie. Tak jednak nie jest.
Na 38000 zliczanych impulsów stany wahają się +/-200 i te wahania pływają.
Aby to ustalić dokładnie czeka mnie wgłębna analiza kodu. Podejrzewam że kompilator C "wymyślił" coś poza kontrolą i należy użyć wstawek asm.
Moje pytanie. Jakie powinienem spełnić podstawowe warunki w konstrukcji programu aby było b.dokladnie czyli +/- 1 impuls. Załączam ustawienie liczników i procedurę przerwania
Kod: C / C++
