реклама на сайте
подробности

 
 
> Counter0 и переполнение
azazelloAV
сообщение Jun 29 2012, 06:54
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 29-06-12
Пользователь №: 72 554



Не могу разобратся в простом коде, может кто просветит.

Код
unsigned long micros() {
unsigned long m;    
cli();
m = timer0_overflow_count;
t = TCNT0;  
if ((TIFR0 & _BV(TOV0)) && (t < 255))
        m++;
    
return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond());
}


Не пинайте только, код взят с библиотеки ардуино - функция получения времени в микросекундах.
Ну вот объясните, ну вот с чего, с чего они взяли что прерывание по переполнению (сам флаг) не будет между этими двумя строчками
Код
t = TCNT0;  
if ((TIFR0 &

Да и вообще, может кто подскажет как это сделать корректно, без потери точности

Сообщение отредактировал azazelloAV - Jun 29 2012, 06:56
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 21:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01329 секунд с 7
ELECTRONIX ©2004-2016