Найти тему

Программирование Atmega 128

__

Winawr и Ардуино

Arduino/CraftDuino и WinAVR - программируем на чистом С – RoboCraft

Продвинутый подход к программированию Arduino и AVR

An Advanced Approach to Arduino & AVR Programming

Разъем для программирования:

Разъем. Атмега

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;

}

___

__