Микроконтроллеры | Ликбез по программированию PIC |
|
---|---|---|
Splav56: Сколько времени займет обработка прерывания? Где гарантия, что по другому входу в это время не придет запрос, который будет проигнорирован, т.к. у нас на время обработки этого прерывания все другие прерывания запрещены Zandy: Допустим мы вошли в прерывание по положительному фронту RB6. Находясь в прерывании мы не знаем, по какому сигналу оно произошло. При опросе портов выясняется, что в данный момент и RB4 и RB5 и RB6 находятся в состоянии 1. Так от какого же сигнала произошло прерывание? От RB6, т.к. мы сравним текущее состояние порта и состояние, которое было в предыдущем прерывании (прерывании, которое было непосредственно перед текущим), и выявим, что состояние RB4 и RB5 с тех пор не изменилось. А следовательно, изменилось состояние только RB6 - значит RB6 и есть источник прерывания. И ещё замечание. Пусть даже обработчик состоит из 100 инструкций и отрабатывает примерно за 100 мкс. Это может внести погрешность из-за "отложенных" прерываний около (0,1*100%)/40 = 0,25 %, что я считаю допустимо. На самый крайний случай у нас есть приличный запас по тактовой частоте - до 20 МГц. |
|
|
picmaniac: и после выхода по retfie произойдет повторный вызов обработчика, где и будет обработано это "отложенное" прерывание. picmaniac: И ещё замечание. Пусть даже обработчик состоит из 100 инструкций и отрабатывает примерно за 100 мкс. Это может внести погрешность из-за "отложенных" прерываний около (0,1*100%)/40 = 0,25 %, что я считаю допустимо. ОК! Согласен. Четверть процента допустимо. |
|
|
|
||
picmaniac: Камень с души |
|
|
|
||
Принципиальная схема устройства: |
|
|
Наконец-то я догадался. Мы в прерывании не торчим до конца периода, дожидаясь его конца, а выходим из него сразу после считывания таймера и анализа его состояния. Так? Тогда все становится на свой места. |
|
|
Zandy: после считывания таймера и анализа его состояния После считывания уровней на входах, сравнения их с предыдущими, считывания числа из таймера, и вычисления периода для тех входов, на которых засекли фронт импульса. Zandy: граф не требуется Лишь бы поотлынивать! Организацию мигания предлагаю разобрать позже. Для того, чтоб двигаться дальше не ощупью, а осмысленно, рекомендую всем распечатать и внимательно изучить Приложение 12 к книге А.А. Шалыто "Switch-технология". http://is.ifmo.ru/books/switch_djvu2/Pr12.djvu |
|
|
picmaniac: рекомендую всем распечатать и внимательно изучить Приложение 12 к книге А.А. Шалыто "Switch-технология". http://is.ifmo.ru/books/switch_djvu2/Pr12.djvu Распечатал, просмотрел, БОльшую половину не усек. Стал изучать досконально, завис на п.6. Не могу понять по какому принципу строятся конъюнкции: для входящей дуги -z1z2 вершины 1 и исходящей z1-z2 той же вершины, а также для входящей дуги z1-z2 вершины 3 и исходящей -z1z2 той же вершины. (Минус в конъюнкции надо интерпретировать как "инверсия", иначе не напечатать). |
|
|
picmaniac: переполнение таймера тайм-аута (это внутренний сигнал). |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2025 |