электроника сәнгате
659 subscribers
674 photos
72 videos
56 files
332 links
сәлам дуслар! здесь схемотехника, pcb дизайн, микроконтроллеры, линукс встроенный и десктопный
Download Telegram
Forwarded from learning log
Добрался наконец до работы с atmega под линукс на C

https://www.tonymitchell.ca/posts/setup-avr-toolchain-on-linux/

Здесь, в принципе, все описано
gcc-avr - компилятор
avr-libc - имплементация стандартной библиотеки для AVR https://avr-libc.nongnu.org/user-manual/index.html)
avrdude - тулза для заливки в МК
sudo apt install make gcc-avr avr-libc avrdude


Код "мигалки"

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

int main()
{
// Set built-in LED pin as output
DDRB |= (1 << DDB5);
while (1) {
PORTB |= (1 << PB5); // LED on
_delay_ms(500);
PORTB &= ~(1 << PB5); // LED off
_delay_ms(500);
}
return 0;
}


Команды для компиляции и заливки. Единственное я поменял программатор на usbasp

avr-gcc blink.c -o blink.elf -mmcu=atmega328p -DF_CPU=16000000UL -Os
avr-objcopy blink.elf -O ihex blink.hex
avrdude -c usbasp -p m328p -U flash:w:"blink.hex":a


Здесь -DF_CPU=тактовая частота в Гц,

#tetris_c #avr
❤‍🔥9👍1