切腹のイラスト

Arduino IDE無しでLチカ

{
  date: "",
}

やった。 <Arduino.h>が鬼門。

main.cc

#include <avr/io.h>
#include <util/delay.h>

void setup() {
  DDRB |= 1 << 5;
}

void loop() {
  PORTB |= 1 << 5;
  _delay_ms(1000);
  PORTB ^= 1 << 5;
  _delay_ms(1000);
}

[[noreturn]]
auto main() -> int {
  setup();
  for(;;) loop();
}

Makefile

CXX         = avr-c++
OBJCOPY     = avr-objcopy
CXXFLAGS    = -O2 -mmcu=atmega328p -DF_CPU=16000000L
ADFLAGS     = -p atmega328p -c arduino -D
PORT        = /dev/ttyUSB0

all: main.hex
clean:
	rm -f main.hex main *.o

main.hex: main
	$(OBJCOPY) -O ihex $< $@

upload: main.hex
	avrdude $(ADFLAGS) -P $(PORT) -U flash:w:$<:i