diff --git a/Hardware.h b/Hardware.h new file mode 100644 index 0000000..f05f570 --- /dev/null +++ b/Hardware.h @@ -0,0 +1,6 @@ +#pragma once + +#define F_CPU 1000000 + +void delay_ms(double delay); +void delay_us(double delay); \ No newline at end of file diff --git a/hardware.cpp b/hardware.cpp new file mode 100644 index 0000000..4a23f67 --- /dev/null +++ b/hardware.cpp @@ -0,0 +1,34 @@ +#include "hardware.h" +#include "avr/io.h" + +void delay_ms(double delay) +{ + // prescaler: 1024 + TCCR0B = (1 << CS02) | (1 << CS00); + TCNT0 = 0; + + while (TCNT0 <= delay) + { + if (TCNT0 >= 49) + { + delay -= 50; + TCNT0 = 0; + } + } +} + +void delay_us(double delay) +{ + // prescaler: 1 + TCCR0B = (1 << CS00); + TCNT0 = 0; + + while (TCNT0 <= delay) + { + if (TCNT0 >= 50) + { + delay -= 50; + TCNT0 = 0; + } + } +}