что-то я не понимаю...

Dec 08, 2003 Last reply: 22 years ago 4 Replies

Пpивет, All!


Hа 90S2313 был у меня программный UART, битовые интервалы генерировались таймером 1 в режиме сравнения с компаратором. Все нормально, проблем никаких, по достижении N (записанного в компараторе), таймер обнулялся, генерировалось прерывание. Переношу на ATmega8. А интервал-то другой. Длительность уже не N, а N+1... Оно так задумано и я чего-то недочитал в даташитах ? Пришлось писать в компаратор значение, на единицу меньшее, но сомнения терзают. Тем более, что и длительность битового интервала вроде по скопу выходит чуть меньше нормы (сделал то же самое родным UART - чуть отличается). Прямо хоть частотомер подключай... Т.е. дело и до частотомера дойдет, но для начала бы понять логику сброса таймера...


с уважением Владислав


Пpивет, All!

*** 09 Dec 03 01:16, Vladislav Baliasov wrote to All:

VB> генерировались таймером 1 в режиме сравнения с компаратором. Все VB> нормально, проблем никаких, по достижении N (записанного в VB> компараторе), таймер обнулялся, генерировалось прерывание. Переношу на VB> ATmega8. А интервал-то другой. Длительность уже не N, а N+1... Оно так VB> задумано и я чего-то недочитал в даташитах ?

Еще раз перечитал - вроде логично, таймер считает до N _включительно_. Hо почему для 2313 (где, если верить диаграмме, все так же) все работало ? Или это в эрратах было, а я запамятовал ?

с уважением Владислав

Tue Dec 09 2003 01:49, Vladislav Baliasov wrote to All:

VB>> генерировались таймером 1 в режиме сравнения с компаратором. Все VB>> нормально, проблем никаких, по достижении N (записанного в VB>> компараторе), таймер обнулялся, генерировалось прерывание. Переношу на VB>> ATmega8. А интервал-то другой. Длительность уже не N, а N+1... Оно так VB>> задумано и я чего-то недочитал в даташитах ?

VB> Еще раз перечитал - вроде логично, таймер считает до N _включительно_. Hо VB> почему для 2313 (где, если верить диаграмме, все так же) все работало ? VB> Или это в эрратах было, а я запамятовал ?

Там была какая-то тонкость с прескалером на эту тему. Hо перечитывать даташиты лень. :)

WBR, Юрий.

Пpивет, Yuriy!

*** 09 Dec 03 03:01, Yuriy K wrote to Vladislav Baliasov:

VB>> Еще раз перечитал - вроде логично, таймер считает до N VB>> _включительно_. Hо почему для 2313 (где, если верить диаграмме, VB>> все так же) все работало ? Или это в эрратах было, а я VB>> запамятовал ?

YK> Там была какая-то тонкость с прескалером на эту тему. YK> Hо перечитывать даташиты лень. :)

Да, перечитал, осознал. С прескалером 2313 работает иначе.

с уважением Владислав

Пpивет, Alexander!

*** 26 Jan 04 17:35, Alexander Derazhne wrote to Vladislav Baliasov:

VB>> внешние, по уровню. VB>> когда на входе внешнего прерывания стабильный "0", то

AD> ... кристалл только и занимается входом в во "внешнее" прерывание AD> и выходом из него. Очевидно, у него приоритет больше.

Можно было бы предположить и такое. Hо я же не совсем дурак ? Сделал отладочную пропечатку в основной программе, вижу, как инкрементируется TMR0, а вот обработчик его переполнения (по которому у меня идет счет времени) - не вызывается...

с уважением Владислав

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required