Witam. Robię układ do pomiaru czasu. Potrzebuję dokładność do 1ms. Napisałem taki kod:
Procesor ustawiony na 8Mhz, wewnętrzny oscylator.
Program powinien wysyłać do komputera informacje o czasie jaki upłynął, porównałem czas z stoperem na telefonie i okazało się, że wartość "k" jest dobra (drobne różnice, ale nie duże ok 1-3%), ale wartość "val" jest niepoprawna. Zostawiłem telefon ze stoperem i mikrokontroler na 30 min. I wartość na telefonie była ok 2 lub 20 (teraz nie pamiętam ile zer było) razy mniejsza niż na komputerze.
Oto jakie wartości mam w terminalu:
Według zmiennej K - czas w sekundach | Według zmiennej VAL - czas w ms
1|1
2|2
3|4
4|6
5|8
6|10
7|12
8|14
9|16
10|18
11|20
12|22
13|24
14|26
15|28
Gdzie jest jakiś błąd? Bo nie mam pojęcia dlaczego to nie działa.
Kod: C / C++
Procesor ustawiony na 8Mhz, wewnętrzny oscylator.
Program powinien wysyłać do komputera informacje o czasie jaki upłynął, porównałem czas z stoperem na telefonie i okazało się, że wartość "k" jest dobra (drobne różnice, ale nie duże ok 1-3%), ale wartość "val" jest niepoprawna. Zostawiłem telefon ze stoperem i mikrokontroler na 30 min. I wartość na telefonie była ok 2 lub 20 (teraz nie pamiętam ile zer było) razy mniejsza niż na komputerze.
Oto jakie wartości mam w terminalu:
Według zmiennej K - czas w sekundach | Według zmiennej VAL - czas w ms
1|1
2|2
3|4
4|6
5|8
6|10
7|12
8|14
9|16
10|18
11|20
12|22
13|24
14|26
15|28
Gdzie jest jakiś błąd? Bo nie mam pojęcia dlaczego to nie działa.
