Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Как можно расширять таймер в прерывании по захвату??? Так будет пропущено неизвестное количество переполнений таймера.
Отправлено
Леонид Иванович
30 декабря 2007 г. 14:12
В ответ на:
Прочти внимательнее мой пост - отдельного прерывания по TOV у меня не требуется, т.к. TOV анализируется в прерывании по Capture и там же КОРРЕКТНО расширяется таймер. В коде же с электроникса расширение происходит безусловно и асинхронно относительно TCAP, и поэтому возможна ситуация, когда расширитель собьется на 1 тик - типичная ситуация, возникающая при применении асинхронного переноса вместо сквозного
отправлено =AVR= 30 декабря 2007 г. 13:40
Составить ответ
|
Вернуться на конференцию
Ответы
8-0))))
—
BBC
(30.12.2007 19:22:17
83.217.44.16
,
пустое
)
Мой вариант - это расширение не таймера, а захвата. Разумеется, он предполагает, что событие захвата происходит заведомо чаще переполнения таймера
—
=AVR=
(30.12.2007 18:28:54
80.92.96.19
,
пустое
)
Такой вариант не подойдет. А в каких случаях будет ошибаться вариант с электроникса? По-моему, там все хорошо, результат правильно корректируется.
—
Леонид Иванович
(30.12.2007 18:31:46
87.252.227.56
,
пустое
)
Нет, он корректируется неправильно. TOV сбрасывается АВТОМАТИЧЕСКИ по входу в TOV ISR, поэтому TOV в ICP ISR при том коде НИКОГДА не будет виден - его ДО ТОГО будет сбрасывать TOV ISR. Можно слегка доработать мой метод и получить корректный расширитель - например, в TOV ISR устанавливать отдельный семафор, который и анализировать в ICP ISR
—
=AVR=
(30.12.2007 19:03:33
80.92.96.19
,
пустое
)
Это не верно. Если запросы прерываний поступят одновременно, первым будет обрабатываться ICP и в обработчике будет видет установленный флаг TOV.
—
Леонид Иванович
(30.12.2007 19:36:14
87.252.227.56
, 278 байт)
Я не про одновременность. Возьми, например, TCAP=FFFF FFFF и войди в ICP ISR. Пока жуются сопли пролога и входа, TOV преспокойно устанавливается, и процедура коррекции на этом основании ничтоже сумняшеся инкрементирует расширитель, что дает 0000 FFFF вместо FFFF FFFF
—
=AVR=
(30.12.2007 19:51:3
80.92.96.19
,
пустое
)
Там же есть условие, если старший бит захваченного значения равен 1, то коррекция не производится.
—
Леонид Иванович
(30.12.2007 20:05:7
87.252.227.56
,
пустое
)
Мне лениво сейчас копать очень глубоко, но я знаю, что точь-в-точь такая реализация, как на электрониксе, у меня ИНОГДА сбоила, а после переделки по моему методу сбои прекратились раз и навсегда
—
=AVR=
(30.12.2007 20:12:49
80.92.96.19
,
пустое
)
Чтобля? (:-)))"Умыли" тебя?...Пиздобол...Набля прочти ещё это
—
Дейтерий
(30.12.2007 20:42:39
217.118.66.37
,
пустое
,
ссылка
)
Ваша реализация не подходит, так как захваты происходят редко. Нужно использовать прерывание по переполнению. Поэтому интересно, где именно в той реализации некорректность. Я пока её не нашел.
—
Леонид Иванович
(30.12.2007 20:29:32
87.252.227.56
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
умножьте 2 на три:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru