Таймеры/счётчики в AVR

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Таймеры/счётчики в AVR

Сообщение hybroid »

gavrasio писал(а):Я устанавливаю, а вызывает какая-то движуха в программе.
Повторю за Барсуком: никакая движуха в программе его не вызывает. Ну если только ты сам не прыгнешь по адресу туда.
Вообще громкое слово "вызывает".. При включенном прерывании МК сам заворачивает по жёстко забитому адресу, а дальше уже твои проблемы. Некоторые пейсатели на ассемблере себе вначале регулярно отстреливали ноги с таблицей прерываний.
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Таймеры/счётчики в AVR

Сообщение gavrasio »

hybroid писал(а):
gavrasio писал(а):Я устанавливаю, а вызывает какая-то движуха в программе.
Повторю за Барсуком: никакая движуха в программе его не вызывает. Ну если только ты сам не прыгнешь по адресу туда.
Вообще громкое слово "вызывает".. При включенном прерывании МК сам заворачивает по жёстко забитому адресу, а дальше уже твои проблемы. Некоторые пейсатели на ассемблере себе вначале регулярно отстреливали ноги с таблицей прерываний.

В Си движуха while(1) в main ловит любые прерывания, в принципе, ты так и сказал выше. Просто я не могу понять, как у товарища не может обработаться вектор OVF. Там какой-то режим СТС у него.Ты об этом что-то знаешь?
Аватара пользователя
Jeka_M
Встал на лапы
Сообщения: 101
Зарегистрирован: Пт окт 03, 2014 14:50:06

Re: Таймеры/счётчики в AVR

Сообщение Jeka_M »

gavrasio писал(а):В Си движуха while(1) в main ловит любые прерывания

На удочку ловит или сачком?
А если while(1) не поймает прерывание и оно таки проскочит?
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Таймеры/счётчики в AVR

Сообщение gavrasio »

Jeka_M писал(а):
gavrasio писал(а):В Си движуха while(1) в main ловит любые прерывания

На удочку ловит или сачком?
А если while(1) не поймает прерывание и оно таки проскочит?

Так эта команда ловит всё( вообще-то это есть системная функция для Си, интерфейс к ней прописан в хедерах GCC).Не проскочит, она заточена на ловле прерываний.
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Таймеры/счётчики в AVR

Сообщение Pnjom-Penb »

Удивляюсь, как взрослые, умные мужики поддаются на развод и в упор не распознают абстинентный синдром фекафилии. :dont_know:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Таймеры/счётчики в AVR

Сообщение ARV »

gavrasio писал(а):Где Вы устанавливаете любые флаги, можно, при инициализации( ясно чего) или же в ходе исполнения программы( бери обработщик прерываний).
Если Вы не определите "обработщик этого прерывания" - ничего не будет. Что Вы понимаете за термином "определить обработщик"?
ну, раз уж вы меня к разряду тяжелой артиллерии отнесли, буду брать в вилку:
1. Любые флаги, к несчастью, программист не может устанавливать (в AVR). к несчастью, флаги запросов прерываний программист может только сбросить. промах - ушло влево
2. если я не определю обработчик, но разрешу соответствующее прерывание, будет, мягко говоря, крах программы. в чем именно он будет выражен, зависит от компилятора и, возможно, от программиста - но он неизбежно будет. промах - ушло вправо
3. определить обработчик - это, надеюсь, понятно всем мало-мальски знакомым с программированием людям. вам не знакомо? теперь вилка - попал :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Таймеры/счётчики в AVR

Сообщение hybroid »

Нда уж. Вот такие моменты заставляют думать, что сначала надо всё же давать в руки только ассемблер. А потом уже, после эволюции, ЯВУ с компилятором и линкером. Вот написал бы он раз сам таблицу - познал бы истину раз и навсегда.
gavrasio писал(а):Так эта команда ловит всё( вообще-то это есть системная функция для Си, интерфейс к ней прописан в хедерах GCC).Не проскочит, она заточена на ловле прерываний.
Я тебя вспомнил! :facepalm: У тебя операторы - это функции, всё у тебя по какому-то "учебнику". :facepalm: Теперь ещё и "интерфейсы" к "системным функциям"..
Я, канэшно, извиняюсь.. но это пиздец.
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Таймеры/счётчики в AVR

Сообщение gavrasio »

[quote="ARV"][quote="gavrasio"]Где Вы устанавливаете любые флаги, можно, при инициализации( ясно чего) или же в ходе исполнения программы( бери обработщик прерываний).

1. Любые флаги, к несчастью, программист не может устанавливать (в AVR). к несчастью, флаги запросов прерываний программист может только сбросить.
Нобелевскую премию Вам! А кто же эти флаги устанавливает?
Если мы с Вами понимаем, что такое флаги, то в среде разработщиков программ, считается дурным тоном трогать их. Можно без них тихо пройти. Если я не прав, - киньте программу, - я посмотрю( где типа флаги).
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Таймеры/счётчики в AVR

Сообщение gavrasio »

[quote="hybroid".
Я, канэшно, извиняюсь.. но это пиздец.[/quote]

Так и я Вас припоминаю! Приятно встретить старого друга!( белый орёл).
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Таймеры/счётчики в AVR

Сообщение hybroid »

Начнём. Ответь: вот это что такое? Вот тут:
Изображение

gavrasio писал(а):А кто же эти флаги устанавливает?
А что вот тут написано?
Изображение
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Таймеры/счётчики в AVR

Сообщение gavrasio »

Pnjom-Penb писал(а):Удивляюсь, как взрослые, умные мужики поддаются на развод и в упор не распознают абстинентный синдром фекафилии. :dont_know:

По этому делу Вы специалист, а ,если отвлечётесь, в тему что-нибудь.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Таймеры/счётчики в AVR

Сообщение zero648 »

gavrasio писал(а):...Просто я не могу понять, как у товарища не может обработаться вектор OVF. Там какой-то режим СТС у него.......

Режим СТС - это режим при котором таймер сбрасывается при достижении ТОРа.
В режиме СТС таймер никогда не переполнится, он будет постоянно сбрасываться при достижении ТОРа, по-этому флаг OVF не включается, соответственно и вектор не будет обрабатываться. Если только попробовать в ТОР записать 0xFFFF, но тогда и режим СТС, как бы, нет смысла использовать.
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Таймеры/счётчики в AVR

Сообщение gavrasio »

hybroid писал(а):Начнём. Ответь: вот это что такое? Вот тут:
Изображение

gavrasio писал(а):А кто же эти флаги устанавливает?
А что вот тут написано?
Изображение

А что начнём? Я уже писал, а не писял. Кинь мне программу. Любую. У меня поверочных программ море на любые случаи жизни, если беру другой мк, - делаю по полной. Твою прогу на конкретный мк проштудирую(только в Си). Вопросы есть?
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Таймеры/счётчики в AVR

Сообщение hybroid »

А щито такэ "проверочная программа"? :shock:

https://bitbucket.org/hybroid/ir-lamp/src
Не понятно, что ты собрался "штудировать"..
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Таймеры/счётчики в AVR

Сообщение ARV »

gavrasio писал(а):Нобелевскую премию Вам! А кто же эти флаги устанавливает?
Если мы с Вами понимаем, что такое флаги, то в среде разработщиков программ, считается дурным тоном трогать их. Можно без них тихо пройти. Если я не прав, - киньте программу, - я посмотрю( где типа флаги).

куда зайти за премией? ;)

вам, как любимому сыну лейтенанта Шмидта, объясняю: в семействе AVR флаги запросов прерываний устанавливаются аппаратно, т.е. без участия программиста, по состоянию аппаратной части периферии МК. эти флаги программист может считать и сбросить, но установить, без ухищрений, связанных с внешней схемой, как правило, не имеет никакой возможности. ну, если не считать такой возможностью, например, цикл ожидания аппаратной установки :)

мы с вами, увы, не понимаем, что такое флаги - это пока что понимаю я один, без вас... ну и про дурной тон среди программистов - я бы промолчал: для чего же вообще флаги, если их обходить стороной?!

если вы не прекратите с непререкаемой самоуверенностью вещать бред сивого мерина, то единственное, что захочется в вас кинуть, будет совсем не тестовая программа, а кирпич :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Таймеры/счётчики в AVR

Сообщение gavrasio »

ARV писал(а):
gavrasio писал(а):Нобелевскую премию Вам! А кто же эти флаги устанавливает?
Если мы с Вами понимаем, что такое флаги, то в среде разработщиков программ, считается дурным тоном трогать их. Можно без них тихо пройти. Если я не прав, - киньте программу, - я посмотрю( где типа флаги).

куда зайти за премией? ;)

вам, как любимому сыну лейтенанта Шмидта, объясняю: в семействе AVR флаги запросов прерываний устанавливаются аппаратно, т.е. без участия программиста, по состоянию аппаратной части периферии МК. эти флаги программист может считать и сбросить, но установить, без ухищрений, связанных с внешней схемой, как правило, не имеет никакой возможности. ну, если не считать такой возможностью, например, цикл ожидания аппаратной установки :)

мы с вами, увы, не понимаем, что такое флаги - это пока что понимаю я один, без вас... ну и про дурной тон среди программистов - я бы промолчал: для чего же вообще флаги, если их обходить стороной?!

если вы не прекратите с непререкаемой самоуверенностью вещать бред сивого мерина, то единственное, что захочется в вас кинуть, будет совсем не тестовая программа, а кирпич :)))

Согласен.
При наступлении какого-либо события соответствующий флаг регистра TIFR (TIFRrt)/ETIFR устанавливается в 1. При запуске подпрограммы обработки прерывания он аппаратно сбрасывается в 0. Любой флаг может быть также сброшен программно, записью в него лог. 1.
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: Таймеры/счётчики в AVR

Сообщение B@R5uk »

zero648 писал(а):В режиме СТС таймер никогда не переполнится, он будет постоянно сбрасываться при достижении ТОРа, по-этому флаг OVF не включается, соответственно и вектор не будет обрабатываться.
Плохо, когда люди не читают документацию и вводят своим незнанием в заблуждение других. Документация на ATmega8, описание регистров таймера TCNT1 на странице 97-98, таблица 39 имеет в своём последнем столбце заголовок TOV1 Flag Set on и во всех допустимых режимах указано событие, когда этот флаг устанавливается. Если внимательно почитать остальное описание таймера, то можно обнаружить, что частенько флаг переполнения дублирует установку других флагов.

gavrasio писал(а):...в среде разработщиков программ, считается дурным тоном трогать их (флаги). Можно без них тихо пройти...
Чушь полная! То же мне программист нашёлся.
Последний раз редактировалось B@R5uk Пн окт 05, 2015 20:25:32, всего редактировалось 1 раз.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Таймеры/счётчики в AVR

Сообщение a5021 »

Плохо, когда люди читают, указывают номера страниц, но не понимают, что там написано. zero648 абсолютно правильно описал механизм работы и называть это "заблуждением" -- просто доказательство неспособности понять даже то, что написано и лежит перед носом.
gavrasio
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Пн июн 01, 2015 15:23:01

Re: Таймеры/счётчики в AVR

Сообщение gavrasio »

Но кое-что и мы можем устанавливать. Например, флаги в регистре SREG, - мелочь, но приятно :))
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Таймеры/счётчики в AVR

Сообщение a5021 »

Установите. Сделайте себе приятное.
Ответить

Вернуться в «AVR»