summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvisil <workregor@mail.ru>2023-10-11 21:12:15 +0300
committervisil <workregor@mail.ru>2023-10-11 21:12:15 +0300
commit636aec561badc805ed454c7a8f4c120428c9b627 (patch)
treeb43ee14bc7836a1e004afa335b4ddedbbe6ad225
parentdb3871e169003284ccce2f7f7fef267017362d71 (diff)
Улучшил Makefile, исправление некорректной компиляции при наличии других функций в коде, улучшил кодHEADmaster
-rw-r--r--.gitignore3
-rw-r--r--Makefile10
-rw-r--r--led.c10
3 files changed, 11 insertions, 12 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9c16f5b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.o
+*.bin
+*.hex
diff --git a/Makefile b/Makefile
index 5f11262..d45a912 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,12 @@
DELAY?=1000
+SRCFILE?='led'
default:
- avr-gcc -DDELAY=${DELAY} -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o led.o led.c
- avr-gcc -o led.bin led.o
- avr-objcopy -O ihex -R .eeprom led.bin led.hex
+ avr-gcc -Wall -Wextra -DDELAY=${DELAY} -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o ${SRCFILE}.o ${SRCFILE}.c
+ avr-gcc -mmcu=atmega328p -o ${SRCFILE}.bin ${SRCFILE}.o
flash:
- sudo avrdude -F -V -c arduino -p ATMEGA328P -P /dev/ttyACM0 -b 115200 -U flash:w:led.hex
+ sudo avrdude -F -V -c arduino -p ATMEGA328P -P /dev/ttyACM0 -b 115200 -U flash:w:${SRCFILE}.bin
clean:
- rm -f led.o led.hex led.bin
+ rm -f ${SRCFILE}.o ${SRCFILE}.bin
diff --git a/led.c b/led.c
index 2eda149..3e83dda 100644
--- a/led.c
+++ b/led.c
@@ -7,16 +7,12 @@
int main(void) {
// назначаем PORTB5 на "вывод" (output)
- DDRB = DDRB | (1 << DDB5);
+ DDRB |= (1 << DDB5);
// вечный цикл...
while(1) {
- // сигнал на PORTB5
- PORTB = PORTB | (1 << PORTB5);
- // пауза...
- _delay_ms(DELAY);
- // сигнал выкл.
- PORTB = PORTB & ~(1 << PORTB5);
+ // переключаем сигнал на PORTB5
+ PORTB ^= (1 << PORTB5);
// пауза...
_delay_ms(DELAY);
}