Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы новичка, пока дилетанта.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Daemoon
Здравствуйте.
Возникла необходимость освоения AVR, но всилу отсутствия навыка сразу возникает обилие вопросов, наверняка как у многих начинающих.
Прежде всего, не могу разобраться: где брать темплейты для конкретного AVR-контроллера. Т.е. наверняка ведь существуют заготовки, чтоб не самому писать таблицу векторов вроде этой:

rjmp RESET ; Reset Handler
rjmp EXT_INT0 ; IRQ0 Handler
rjmp EXT_INT1 ; IRQ1 Handler
rjmp TIM2_COMP ; Timer2 Compare Handler
rjmp TIM2_OVF ; Timer2 Overflow Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 CompareA Handler

Буду признателен за разъяснения, поскольку какого-либо FAQ здесь я не обнаружил.
С уважением.
ILYAUL
В DATASHEET
777777
Цитата(Daemoon @ Feb 4 2011, 15:05) *
Т.е. наверняка ведь существуют заготовки, чтоб не самому писать таблицу векторов вроде этой:

rjmp RESET ; Reset Handler
rjmp EXT_INT0 ; IRQ0 Handler
rjmp EXT_INT1 ; IRQ1 Handler
rjmp TIM2_COMP ; Timer2 Compare Handler
rjmp TIM2_OVF ; Timer2 Overflow Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 CompareA Handler


Эта заготовка называется "Си"
Палыч
Цитата(Daemoon @ Feb 4 2011, 15:05) *
чтоб не самому писать таблицу векторов
В Вашей программе вряд ли потребуются все эти вектора. Скорее всего - пара-тройка. Вот их и напишите (остальные будут только засорять программу), времени это много не займёт.
konstan
Установи WinAVR.
При написании программы, подключи
#include <avr/io.h>
Через файл io.h происходит подключение ioNAMEDEVICE.h (NAMEDEVICE - имя используемого контроллера).
Открываешь ioNAMEDEVICE.h ( расположен C:\WinAVR-20100110\avr\include\avr ) и ищешь имя МАКРОСа интересующего тебя вектора.

обработка прерывания осуществляется так

ISR (Макрос вектора прерывания)
{
тело обработчика;
}

Палыч
Цитата(konstan @ Feb 4 2011, 16:33) *
обработка прерывания осуществляется так
На ассемблере, вроде, человек пытается писать

P.S. На ассемблере это будет выглядеть, примерно, так
Код
org адрес
rjmp метка
Адреса берёте из Datasheet'а, имена меток желательно повторить из него же (т.е. такие же, как в примерах Datasheet'a)
konstan
А лучше начни с книги Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. МК-Пресс, Киев, 2006
Палыч
Несомненно, что на языке Си писать программы удобнее и быстрее (когда знаешь этот язык), но несколько первых примитивных программ (хотя бы "подрыгать" ногами и что-то нибудь простенькое с прерыванием - то же "ногодрыжество", но от таймера, например) полезно написать на ассемблере, чтобы "понять" контроллер.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.