Witajcie.
Otóż przeszukiwałem forum i jedynie znalazłem informacje jak zrobić obrotomierz zliczając impulsy poprzez wejście T0 w określonych odcinkach czasu.
Mi zależy natomiast aby zmierzyć czas pojedynczego obrotu poprzez czujnik Halla podłączony do przerwania zewnętrznego.
Napisałem taką aplikację ale niestety wynik skacze jak chce, nie dając mi choćby zbliżonego wyniku.
Dodam tylko, że korzystam z atmega128 i korzystam z czujnika Halla TLE490G który daje wynik prostokątny i jest podłączony do portu PE7 (int7)
Oto mój błędny program.
Z góry dziękuję za pomoc lub naprowadzenie jak mój problem rozwiązać?
Otóż przeszukiwałem forum i jedynie znalazłem informacje jak zrobić obrotomierz zliczając impulsy poprzez wejście T0 w określonych odcinkach czasu.
Mi zależy natomiast aby zmierzyć czas pojedynczego obrotu poprzez czujnik Halla podłączony do przerwania zewnętrznego.
Napisałem taką aplikację ale niestety wynik skacze jak chce, nie dając mi choćby zbliżonego wyniku.
Dodam tylko, że korzystam z atmega128 i korzystam z czujnika Halla TLE490G który daje wynik prostokątny i jest podłączony do portu PE7 (int7)
Oto mój błędny program.
$regfile = "m128def.dat"
$crystal = 16000000
Config Timer3 = Timer , Prescale = 1
Config Lcdpin = Pin , Db4 = Portf.5 , Db5 = Portf.4 , Db6 = Portf.3 , Db7 = Portf.2 , E = Portf.6 , Rs = Portf.7
Config Lcd = 16 * 2
On Int7 Czujnik_magnetyczny
Enable Timer3
Enable Int7
Enable Interrupts
Start Timer3
Cls
Cursor Off
Lcd "Startujemy..."
Timer3 = 0
Do
Locate 2 , 1
Lcd Timer3
Waitms 1000
Loop
Czujnik_magnetyczny:
Stop Timer3
Timer3 = 0
Start Timer3
ReturnZ góry dziękuję za pomoc lub naprowadzenie jak mój problem rozwiązać?