diff --git a/Hardware.h b/Hardware.h index f05f570..737bd28 100644 --- a/Hardware.h +++ b/Hardware.h @@ -2,5 +2,6 @@ #define F_CPU 1000000 -void delay_ms(double delay); -void delay_us(double delay); \ No newline at end of file +#include + +void delay_us(const uint16_t delay); diff --git a/hardware.cpp b/hardware.cpp index 4a23f67..cb7ba62 100644 --- a/hardware.cpp +++ b/hardware.cpp @@ -1,34 +1,17 @@ #include "hardware.h" #include "avr/io.h" -void delay_ms(double delay) +void delay_us(uint16_t delay) { - // prescaler: 1024 - TCCR0B = (1 << CS02) | (1 << CS00); - TCNT0 = 0; + TCCR1B = (1 << CS10); + TCNT1 = 0; - while (TCNT0 <= delay) + while (true) { - if (TCNT0 >= 49) + if (TCNT1 >= delay) { - delay -= 50; - TCNT0 = 0; + return; } } } -void delay_us(double delay) -{ - // prescaler: 1 - TCCR0B = (1 << CS00); - TCNT0 = 0; - - while (TCNT0 <= delay) - { - if (TCNT0 >= 50) - { - delay -= 50; - TCNT0 = 0; - } - } -}