Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Не вижу, чем отличается Ваша версия,

Отправлено Леонид Иванович 30 декабря 2007 г. 13:21
В ответ на: Тамошнее решение не единственное, мало того - не на 100% корректное, даже в "улучшенных" версиях =GM= и singlskv. Вот мой 100% корректный алгоритм с использованием ТОЛЬКО Capture Interrupt(+) отправлено =AVR= 30 декабря 2007 г. 12:44

в той ветке был такой код:


.def ConstFF = R8
.def _TOV1 = R9
.def _Sreg = R10
....
clr ConstFF
dec ConstFF
ldi R16, (1 << TOV1)
mov _TOV1, R16
....

; Input Capture:
TIM1_CAPT:
in _Sreg,SREG
in R4, ICR1L
in R5, ICR1H
tst R5
brmi _do_not_correct_result
in R6, TIFR
and R6, _TOV1
breq _do_not_correct_result
out TIFR, R6
sub R2, ConstFF
sbc R3, ConstFF
_do_not_correct_result:
mov R6, R2
mov R7, R3
out SREG,_Sreg
; <-- 32bit Result R7-R6-R5-R4 (MSB R7)
reti

; Timer Overflow:
TIM1_OVF:
in _Sreg,SREG
sub R2, ConstFF
sbc R3, ConstFF
out SREG,_Sreg
reti


Не понял, что Вы хотели сказать фразой "Вот тут-то и нужен TOV, а вот отдельное прерывание для него совсем не нужно, ибо вредно и вносит неизбежный раздрай". Прерывание по переполнению требуется в любом случае, так как по каждому переполнению нужно инкрементировать расширитель.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

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

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru