__
Winawr и Ардуино
Продвинутый подход к программированию Arduino и AVR
Разъем для программирования:
Разъем. Атмега
1 Mosi. 2 ( Pdi )
3 nc
5 Res. 20 Reset
7 Sck. 11 Pb1
9 Miso. 3 Pdo
2 Vcc. __ 21, 52 Vcc
4,6,8,10 Gnd __ 22, 53, 63 Gnd
Программа avrdude.
Она установлена в составе пакетов Arduino .
Программатор UsbAsp.
Новые программаторы UsbAsp имеют возможность перепрошивка. Для этого у них отдельный джампер. А переключатель, который понижает скорость, почему то не припаян.
Строка заливки:
avrdude -c usbasp - p m128 -U flash:w:main.hex:i
Можно прошивать и программой Khazama.
___
Программа blink по прерыванию
( подсказал Chat Gpt )
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
void init() {
DDRD |= (1 << PD7); // Настройка порта PD7 на вывод
// Настройка таймера1
TCCR1B |= (1 << WGM12); // CTC режим работы таймера
TCCR1B |= (1 << CS12); // Установка предделителя 256
OCR1A = 15624; // Для частоты 1 Гц при тактовой частоте 1 МГц
TIMSK |= (1 << OCIE1A); // Разрешить прерывание по совпадению с OCR1A
sei(); // Включение прерываний
}
ISR(TIMER1_COMPA_vect) {
PORTD ^= (1 << PD7); // Инвертирование состояния PD7 (светодиод)
}
int main() {
init(); // Инициализация
while (1) {
// Основной цикл программы
// Можно здесь выполнять другие операции
}
return 0;
}
___
__