roboforum.ru

Технический форум по робототехнике.

Подскажите сайты про AVR

40inD » 05 сен 2005, 12:59

а если импульсы перекрываются? Пока он будет отрабатывать одно прерывание, пропустит начало второго импульса

setar » 05 сен 2005, 13:33

40inD писал(а):а если импульсы перекрываются? Пока он будет отрабатывать одно прерывание, пропустит начало второго импульса

не должен. если я правильно понимаю то внешнее прерывание лишь флаг поднимает или сбрасывает в регистре.
а контроллер как видит его и свободен от других обработчиков так и обрабатывает следующее прерывание.
Правда возможны запаздывания запуска счётчиков, ну от этого нукуда не деться.
на практике когда длительность измеряемого импульса больше сотни тактов, ошибка практически не заметна.

ASin » 05 сен 2005, 14:19

setar писал(а):
40inD писал(а):а если импульсы перекрываются? Пока он будет отрабатывать одно прерывание, пропустит начало второго импульса

не должен. если я правильно понимаю то внешнее прерывание лишь флаг поднимает или сбрасывает в регистре.
а контроллер как видит его и свободен от других обработчиков так и обрабатывает следующее прерывание.
Правда возможны запаздывания запуска счётчиков, ну от этого нукуда не деться.
на практике когда длительность измеряемого импульса больше сотни тактов, ошибка практически не заметна.


Более того. Обработчик прерываний можно сделать тоже прерываемым. Первой командой скопировать значение таймера, второй -- разрешить прерывания. Только при этом надо гарантировать, что обработчик сумеет всё сделать до возникновния следующего такого же прерывания ;)

40inD » 05 сен 2005, 14:31

Смогу я делать это на Меге32? Можно пример кода со вложенными прерываниями на С?

ASin » 05 сен 2005, 16:41

40inD писал(а):Смогу я делать это на Меге32?

Ага.

40inD писал(а):Можно пример кода со вложенными прерываниями на С?

Тут синтаксис зависит от компилятора. На AvrGcc это будет примерно так:

Код: Выделить всёРазвернуть
SIGNAL( SIG_INTERRUPT0 )    // Прерывание со сбрасыванием флага 
                           // Global Interrupt Enable I-bit
{
   unsigned int t = TCNT1; // (1) "Непрерываемые" действия
   sei();                  // (2) Разрешение остальных прерываний
   ...                     // (3) Обработка, которая может быть прервана
}


Однако, капля дёгтя. Поскольку обработчик прерывается, то другие прерывания могут задержать его выполнение, теоретически, до возникновения нового прерывания INT0. Что после этого произойдёт, я плохо себе представляю, но явно что-то нехорошее ;)
Поэтому надо либо гарантировать, что такой ситуации не возникнет, либо перед шагом (2) запрещать все "долгообрабатываемые" и частые прерывания, а после (3) снова их разрешать... И всё это ради более точного отсчёта времени ;)

Re: Подскажите сайты про AVR

YuriY » 05 сен 2005, 17:44

wolf писал(а):
40inD писал(а):Подскажите сайты с примерами программирования АВР на С и форумы соответствующие. Раньше программировал ПИКи. Хочу попробовать Атмел. Есть ли какие-то различия в программировании? Если с атмелом не разберусь, то робота буду делать на PIC18F4431

http://avr123.nm.ru - для новичков; очень подробно.
Могу также посоветовать книгу Евстифеева "Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL", электронная копия лежит тут: http://rapidshare.de/files/1294516/Evstifeev.Atmel.AVR.Tiny_Mega.Family.By.Grave.Tiny.html



Скачал книгу, а открыть не могу, чем ее смотреть???

Re: Подскажите сайты про AVR

setar » 06 сен 2005, 12:16

YuriY писал(а):Скачал книгу, а открыть не могу, чем ее смотреть???

да, что то непонятно, файл без расширения, а заголовок вит такой
Код: Выделить всёРазвернуть
AT&TFORM hm#DJVMDIRM


Кто в курсе чем это смотреть.
не архив, pdf тоже не кушает.

40inD » 06 сен 2005, 12:33

Так ссылку на форумы и не дал никто

Re: Подскажите сайты про AVR

ASin » 06 сен 2005, 13:57

setar писал(а):
YuriY писал(а):Скачал книгу, а открыть не могу, чем ее смотреть???

да, что то непонятно, файл без расширения, а заголовок вит такой
Код: Выделить всёРазвернуть
AT&TFORM hm#DJVMDIRM


Кто в курсе чем это смотреть.
не архив, pdf тоже не кушает.


DjVu

setar » 06 сен 2005, 14:42

40inD писал(а):Так ссылку на форумы и не дал никто

зарубежный http://www.avrfreaks.net/
наших кроме сайтов перечисленных в шапке как дружественные ресурсы - не знаю.

Re: Подскажите сайты про AVR

wolf » 07 сен 2005, 01:30

setar писал(а):
YuriY писал(а):Скачал книгу, а открыть не могу, чем ее смотреть???

да, что то непонятно, файл без расширения, а заголовок вит такой
Код: Выделить всёРазвернуть
AT&TFORM hm#DJVMDIRM


Кто в курсе чем это смотреть.
не архив, pdf тоже не кушает.


Это формат DjVu, в простейшем случае смотрится плагином для эксплорера: http://www.lizardtech.com/download/dl_options.php?page=plugins.
Если поискать, можно найти вьюверы поудобнее.

40inD писал(а):Так ссылку на форумы и не дал никто

http://forum.electronix.ru/index.php?showforum=10
http://www.telesys.ru/wwwboards/mcontrol
http://www.caxapa.ru/mcu/wwwboard.html
http://fulcrum.ru/cgi-bin/bbs/topic_sel.pl?v=p&FID=1

North » 07 сен 2005, 15:20

Если я правильно понял требуется измерить время между двумя импульсами, приходящими на вход, причём иметь таких входов несколько. Если так, то можно конечно пользовать внешние прерывания, но для этого существуют входы input capture, имхо более удобные.

Re: Подскажите сайты про AVR

GxOST » 14 ноя 2005, 18:22

40inD писал(а):Подскажите сайты с примерами программирования АВР на С и форумы соответствующие.

Ещё есть эмбеддерский чат: #ru_embedded  :wink:

40inD » 14 ноя 2005, 22:09

North писал(а):Если я правильно понял требуется измерить время между двумя импульсами, приходящими на вход, причём иметь таких входов несколько. Если так, то можно конечно пользовать внешние прерывания, но для этого существуют входы input capture, имхо более удобные.

Вот как раз про это я и спрашивал в одном из своих постов. Мне никто не смог внятно ответить, есть ли InputCapture и аппаратный ШИМ на АВР (мне нужно было 3 канала IC и 4 независимых канала ШИМ) . В результате моя попытка попробовать перейти с ПИКов на АВР не удалась. Я уже все сделал на ПИКе.

ответ

Vladex » 11 сен 2006, 10:23

testers писал(а):ой, забыл, желательно базовые схемки подключения и софт чем кодировать  :roll:

Базовые схемки(подключение кварца и RESET)-см. даташиты на эти контроллеры. Может с http://www.mc-prog.narod.ru что то пригодится, там же ссылка на софтины


cron
Rambler\'s Top100 Mail.ru counter