20-08-2018, 13:32
(20-08-2018, 11:27)qbic napisał(a): Ostatecznie zadecydowałem, ze napisze program od nowa bo sam się już trochę w tym gubiłem (co chwile dodawałem coś nowego). Pomiary będę robił za pomocą przerwań, zarówno pomiar prędkości jak i czasu działania wtrysków.
Udało mi się tez uruchomić sprzętowy timer, którym co pół sekundy będę wywoływał funkcje wykonujące najważniejsze obliczenia. Ich wyniki będę zapisywał do zmiennych globalnych, wyświetlanie ich odkoduje w pętli głównej
Słuszny kierunek. Jeszcze trochę i dojdziesz do tego, że Arduino do niczego sensownego się nie nadaje i zaczniesz używać "normalnych" narzedzi.
Zrób pseudo wielopoziomowy system przerwań. Przerwania liczące prędkość i czas wtrysku deklaruj jako SIGNAL lub ISR bez atrybutów. Przerwanie od timera co pół sekundy, w którym wykonujesz obliczenia, deklaruj jako INTERRUPT lub ISR z atrybutem ISR_NO_BLOCK czy jakoś tak