Hello world.
1. Скачайте проект HelloworldAVRA.
2. Измените в файле start.bat программатор, порт, скорость. Для редактирования файлов можно использовать редактор Geany. Проект собран на компьютере с Windows. С Linux также не должно возникнуть затруднений, т.к. в проекте используются кроссплатформенные программы, такие как ассемблер AVRA 1.4.2, AVRdude 7.3, Geany.
Файл start.bat запускает сборку проекта ассемблером, затем прошивку контроллера программой AVRdude.
5. Измените тактирование в файле main.asm
int_osc32 - Внутренний генератор 32МГц, частота тактирования 32МГц.
int_osc16 - Внутренний генератор 32МГц, предделитель 2, частота тактирования 16МГц.
ext_osc - Источник тактирования внешний высокоскоростной кварц.
6. Функции и макросы
clear_first - очистка некоторых регистров. Если в программе реализована софтовая перезагрузку, не достаточно просто перейти на нулевой адрес, также необходимо очистить некоторые регистры.
wdt_off - отключение сторожевого таймера.
e2prom_1k - инициализация E2PROM 1KByte
e2prom_2k - инициализация E2PROM 2KByte
Использование E2PROM в lgt8f328p имеет смысл только при переносе проекта с другого контроллера на lgt8f328p. Если проект пишется с нуля, лучше использовать внешнюю память 24с32-24c256.
7. Если в контроллер записан загрузчик, который находится в конце флеш памяти, можно подстраховаться и разместить перед загрузчиком пару байт. Так ассемблер предупредит вас о ошибке, если код разростется и залезет в занятую область флеш памяти.
.org 0x39ff
flashend
8. Подключите светодиод к порту PB5, через резистор. Подключите программатор к микроконтроллеру.
9. Ассемблер и дудка находятся в каталоге проекта. Остается запустить start.bat и наслаждаться миганием светодиода.