реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Вопросы новичка, пока дилетанта.
Daemoon
сообщение Feb 4 2011, 12:05
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 4-02-11
Пользователь №: 62 710



Здравствуйте.
Возникла необходимость освоения 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 здесь я не обнаружил.
С уважением.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Feb 4 2011, 12:12
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



В DATASHEET

Сообщение отредактировал IgorKossak - Feb 4 2011, 12:29
Причина редактирования: Бездумное цитирование


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
777777
сообщение Feb 4 2011, 13:06
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(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


Эта заготовка называется "Си"
Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 4 2011, 13:28
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Daemoon @ Feb 4 2011, 15:05) *
чтоб не самому писать таблицу векторов
В Вашей программе вряд ли потребуются все эти вектора. Скорее всего - пара-тройка. Вот их и напишите (остальные будут только засорять программу), времени это много не займёт.
Go to the top of the page
 
+Quote Post
konstan
сообщение Feb 4 2011, 13:33
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 16-02-07
Из: Deutschland
Пользователь №: 25 408



Установи WinAVR.
При написании программы, подключи
#include <avr/io.h>
Через файл io.h происходит подключение ioNAMEDEVICE.h (NAMEDEVICE - имя используемого контроллера).
Открываешь ioNAMEDEVICE.h ( расположен C:\WinAVR-20100110\avr\include\avr ) и ищешь имя МАКРОСа интересующего тебя вектора.

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

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

Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 4 2011, 13:38
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



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

P.S. На ассемблере это будет выглядеть, примерно, так
Код
org адрес
rjmp метка
Адреса берёте из Datasheet'а, имена меток желательно повторить из него же (т.е. такие же, как в примерах Datasheet'a)
Go to the top of the page
 
+Quote Post
konstan
сообщение Feb 4 2011, 13:44
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 16-02-07
Из: Deutschland
Пользователь №: 25 408



А лучше начни с книги Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. МК-Пресс, Киев, 2006
Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 4 2011, 13:58
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Несомненно, что на языке Си писать программы удобнее и быстрее (когда знаешь этот язык), но несколько первых примитивных программ (хотя бы "подрыгать" ногами и что-то нибудь простенькое с прерыванием - то же "ногодрыжество", но от таймера, например) полезно написать на ассемблере, чтобы "понять" контроллер.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016