microcontrolling/main.c

35 lines
682 B
C
Raw Normal View History

2023-08-25 07:33:25 +00:00
#define __AVR_ATmega2560__
#define F_CPU 16000000UL
2023-08-26 17:08:09 +00:00
#define DISPLAY PORTF
2023-08-25 07:33:25 +00:00
#include <avr/io.h>
#include <util/delay.h>
2023-08-26 17:08:09 +00:00
#include <stdbool.h>
#include "lib/7segment.h"
2023-08-25 07:33:25 +00:00
void main() {
2023-08-26 15:31:29 +00:00
DDRF = 0b11111111;
2023-08-26 17:08:09 +00:00
DDRK = 0b00000000;
PORTK = 0b00000001; // enable pull-up resistor
2023-08-26 15:31:29 +00:00
2023-08-26 17:08:09 +00:00
uint8_t val = 0;
set_display(&PORTF, val, false);
2023-08-25 07:33:25 +00:00
while(1) {
2023-08-26 17:08:09 +00:00
loop_until_bit_is_clear(PINK, PINK0);
if (val >= 9) {
val = 0xff; // will overflow to 0 when incremented
}
set_display(&PORTF, ++val, true);
// debounce
_delay_ms(200);
loop_until_bit_is_set(PINK, PINK0);
set_display(&PORTF, val, false);
2023-08-25 07:33:25 +00:00
}
}