Здравствуйте всем как можно реализовать функцию millis в атмел-студио, запускаю таймер Т2 по совпадению на 100мкс, потому что сам код в теле цикле занимает 20-30мкс. Во время чтения кода чтобы не потерять данные запрещаю прерывание. Теперь не могу понять как можно пересчитать ниже 100кс с таймером Т2
Текущее значение таймера лежит в регистре TCNT. Считал в начале периода, в конце и по разности значений высчитал длительность периода.
Код (C++): /* * timer_atmega328_2.c * * Created: 26.05.2017 15:04:07 * Author: asu */ #include <avr/io.h> #include <avr/interrupt.h> unsigned long TT; int main(void) { DDRB=0xFF; TCCR1B |= (1<<CS11); // CLK/8 TCNT1=0; asm("sei"); while(1) {TT=TCNT1; TT=TT/2; // Частота микроконтроллера 16МГц так как предделитель 8, 1 такт = 0,5 микросекунд asm("nop"); } }