Мелкие вопросы по МК и ПЛИС.
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Удалось кому то уже пощупать PIC32MZ?
Чувствую до нас дойдёт еще не скоро.
Чувствую до нас дойдёт еще не скоро.
Re: Мелкие вопросы по МК и ПЛИС.
Извините, не убедили. Флаги обслуживания INTF0, INTF1 будут установлены до тех пор, пока на лапах INT0, INT1 будет низкий уровень. Причём, устанавливаются они асихронно и им пофиг сколько раз будет прочитан пин порта.КРАМ писал(а):Прерывания по изменению состояния пинов порта в общем и есть прерывание по УРОВНЮ, потому что оно взводится как результат сравнения состояния пина и защелки последнего из прочитанных состояний пина (порта).
То есть пока пин не будет прочитан флаг прерывания опустить не возможно...
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
akl писал(а):Извините, не убедили. Флаги обслуживания INTF0, INTF1 будут установлены до тех пор, пока...
В AVR это зависит от настройки битов ISC00...ISC11 регистра MCUCR.
Если там одни НУЛИ, то прерывание будет ПО НИЗКОМУ УРОВНЮ, иначе - ПО ФРОНТУ.
В контроллерах PIC есть ОТДЕЛЬНЫЕ входы внешних прерываний и они работают только по активному фронту, а есть целый порт B, у которого ВСЕ ноги могут стать источниками прерываний ПО ИЗМЕНЕНИЮ СОСТОЯНИЯ каждого из этих пинов.
Поскольку для анализа ИЗМЕНЕНИЯ требуется некая БАЗА (защелкнутое исходное состояние), то это самое исходное состояние нужно принудительно зафиксировать в какой то момент времени. Делать это при входе в прерывание не вполне удобно, поскольку источник сигнала на пинах может иметь дребезг, а значит флаг прерывания может быть поднят несанкционировано через некоторое время после входа в обработчик....
В отличие от прерываний по фронту, прерывание по изменению состояния являются АСИНХРОННЫМИ и могут выводить МК из слипа, т.е. при ОСТАНОВЛЕННОМ ТАКТИРОВАНИИ....
- sphincs
- Нашел транзистор. Понюхал.
- Сообщения: 174
- Зарегистрирован: Вт сен 11, 2012 09:13:52
- Откуда: Брест, Беларусь
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
начинаю осваивать AVRы. путаюсь в сбросе флага и сбросе бита регистра. сброс бита регистра - это по всей видимости запись в него 0. а сброс флага - запись 1? т.е. флаг устанавливается записью в бит регистра нуля?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
sphincs писал(а):сброс бита регистра - это по всей видимости запись в него 0. а сброс флага - запись 1? т.е. флаг устанавливается записью в бит регистра нуля?
Флаг тоже является битом регистра, так что однозначный ответ по конкретному флагу даст только ДШ.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
Флагом называется такой бит некоего регистра, по значению которого определяется некое ветвление или вызов. Вызов может быть как программным, так и аппаратным (прерывание).
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Мелкие вопросы по МК и ПЛИС.
Дополню, в случае программного флага, флагом можно назвать не только бит, но и переменную любой разрядности. Все зависит от программиста.
В случае аппаратных флагов AVR - везде флаги = биты регистров.
В случае аппаратных флагов AVR - везде флаги = биты регистров.
Ставим плюсы: )
- sphincs
- Нашел транзистор. Понюхал.
- Сообщения: 174
- Зарегистрирован: Вт сен 11, 2012 09:13:52
- Откуда: Брест, Беларусь
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
говорят в атмегах есть некие часы, которые считают время, прошедшее с начала работы. может врут, не знаю
так вот если они есть, то нужно считать их значения в момент наступления двух определенных событий и сохранить разность. наведите кто-нибудь на мысль как и через что это реализовать, что искать/читать
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
sphincs писал(а):говорят в атмегах есть некие часы, которые считают время, прошедшее с начала работы.
говорят, в атмегах есть микро-заряд С4, который подрывается, если встроенный счетчик наработки превышает 0xFFFFFFFF часов
просто с невероятной силой рекомендую вам читать даташиты. практически требуюsphincs писал(а):что искать/читать
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
ARV писал(а):говорят, в атмегах есть микро-заряд С4, который подрывается, если встроенный счетчик наработки превышает 0xFFFFFFFF часов
Ещё говорят, что на мегах нельзя делить на ноль - http://www.youtube.com/watch?v=mZ7pUADoo58
Re: Мелкие вопросы по МК и ПЛИС.
Ещё бесконечность в регистр не влазит...
"Я не даю готовых решений, я заставляю думать!"(С)
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
И фильмы не показывает в окошке в версии с УФ-стиранием.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
HHIMERA писал(а):бесконечность в регистр не влазит
Влазит. Принимаем за бесконечность "1" и прописываем ее в регистр - вуаля.
Docendo discimus
Re: Мелкие вопросы по МК и ПЛИС.
подскажите пожалуйста, как сделать эллегантно
мне надо чтобы в прерывании по переполнению Т2 некая переменная Х увеличивала свое значение через раз т.е. через одно прерывание
в голову приходит только такой способ
мне надо чтобы в прерывании по переполнению Т2 некая переменная Х увеличивала свое значение через раз т.е. через одно прерывание
в голову приходит только такой способ
Код: Выделить всё
if (++y>=2) {y=0, x++};
if (x>=6) x=0;Tell Me The Truth
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
предлагаю более элегантный подход:
Код: Выделить всё
static uint8_t flag = 0;
if(++flag & 1) x++;если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Мелкие вопросы по МК и ПЛИС.
я так полагаю что надо еще обязательно дописать
иначе в мк крыша седет
так ?
Код: Выделить всё
if (flag==255) flag=0иначе в мк крыша седет
так ?
Последний раз редактировалось FreshMan Чт апр 10, 2014 21:46:51, всего редактировалось 1 раз.
Tell Me The Truth
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
зачем?!FreshMan писал(а):я так полагаю что надо еще обязательно дописатьКод: Выделить всё
if (flag==255) flag=0
так ?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Мелкие вопросы по МК и ПЛИС.
мы flag назначили тип uint8_t
а он предполагает максимум 255
не задымится ли мк когда я буду дальше продолжать инкриментирование ?
а он предполагает максимум 255
не задымится ли мк когда я буду дальше продолжать инкриментирование ?
Tell Me The Truth
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
мда... такого я от вас не ожидал 
в принципе, если вас что-то смущает, можно поступить иначе:
в принципе, если вас что-то смущает, можно поступить иначе:
Код: Выделить всё
if((flag ^= 1) & 1) x++;если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Не задыится, на самом деле пойдет считать в 9-й бит. который называется флагом переноса и вполне безопасно игнорируется в дальнейшем.