SimpleFOClibrary 2.4.0
Loading...
Searching...
No Matches
time_utils.cpp
Go to the documentation of this file.
1#include "time_utils.h"
2
3// function buffering delay()
4// arduino uno function doesn't work well with interrupts
5void _delay(unsigned long ms){
6#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega328PB__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega32U4__)
7 // if arduino uno and other atmega328p chips
8 // use while instad of delay,
9 // due to wrong measurement based on changed timer0
10 unsigned long t = _micros() + ms*1000;
11 while( _micros() < t ){};
12#else
13 // regular micros
14 delay(ms);
15#endif
16}
17
18
19// function buffering _micros()
20// arduino function doesn't work well with interrupts
21unsigned long _micros(){
22#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega328PB__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega32U4__)
23// if arduino uno and other atmega328p chips
24 //return the value based on the prescaler
25 if((TCCR0B & 0b00000111) == 0x01) return (micros()/32);
26 else return (micros());
27#else
28 // regular micros
29 return micros();
30#endif
31}
void _delay(unsigned long ms)
Definition time_utils.cpp:5
unsigned long _micros()