commit 4664add5db5a245059db5daafe100d83430eb42e Author: Caleb Denio Date: Sun Dec 7 15:19:56 2025 -0700 initial commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..a01ed77 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,2 @@ +[*.c] +indent_style = tab diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..314b196 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +a.* diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1626965 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +all: a.bin + +a.out: main.c + avr-gcc -g -Os -mmcu=attiny84a $< -o $@ + +a.bin: a.out + avr-objcopy -O binary $< $@ + +deploy: a.bin + avrdude -p t84a -c stk500v1 -P/dev/tty.usbmodemflip_Rab3gao3 -U flash:w:$<:r diff --git a/config.h b/config.h new file mode 100644 index 0000000..11a733f --- /dev/null +++ b/config.h @@ -0,0 +1,2 @@ +#define OSCILLATOR_CALIBRATION 0x76 + diff --git a/main.c b/main.c new file mode 100644 index 0000000..354ebc0 --- /dev/null +++ b/main.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include + +#include "config.h" + +uint32_t ms_since_boot = 0; + +ISR(TIM1_COMPA_vect) +{ + ms_since_boot++; +} + +void setupio(void) { + // Set port A to inputs + DDRA = 0x00; + PORTA |= PORTA0 | PORTA1; // pull-up + + // Set port B0 to output + DDRB = 0x01; +} + +void setup_clock(void) { + OSCCAL = OSCILLATOR_CALIBRATION; + + TCCR1B = 0x09; + OCR1A = 1000; + TIMSK1 = 0x02; +} + +bool button_pressed(uint8_t pin) { + return (PINA & (1 << pin)) == 0; +} + +int main() { + setupio(); + setup_clock(); + sei(); + + while(true) { + uint32_t sec = ms_since_boot / 1000; + if(sec % 2 == 0) { + PORTB = 1; + } else { + PORTB = 0; + } + } +} +