Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Загадочный сброс предделителя таймеров 0 и 1 Меги16

Непрочитано 28.10.2008, 17:08  
analitik33
Прописка
 
Регистрация: 11.11.2007
Сообщений: 143
Сказал спасибо: 15
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
analitik33 на пути к лучшему
По умолчанию Загадочный сброс предделителя таймеров 0 и 1 Меги16

В даташите на AVR ATmega16 на листах 87-88 указано, что синхронные таймеры-счетчики 0 и 1 имеют общий предделитель. Соответственно, его сброс битом 0 регистра SFIOR воздействует на оба таймера.
Стукнуло в голову проверить этот факт, для чего написал код на ассемблере, приложенный ниже. Запускаются Т0 и Т1 в нормальном режиме с предделителями у обоих 1/64. В цикле регулярно производится сброс общего предделителя. Прогон в AVR-Студии дал пораэительный результат: Т0 стоял как и ожидалось, а вот Т1 ведет счет не обращая внимания на сбросы!!! В железе тест не прогонялся. Как такое может быть???

; АТМега16 Тестовая программа сброса предделителя таймеров во время счета

.include "m16def.inc" ; Присоединение файла описаний

.def temp = r16 ; Определение главного рабочего регистра

;--------------------------- Инициализация таймера-счетчика 0
ldi temp,0b00010011
out TIMSK, temp ;Разрешение прерываний по переполнению
ldi temp,0b00000011
out TCCR0, temp ;Нормальный режим Таймера 0
;--------------------------- Инициализация таймера-счетчика 1
ldi temp,0b00000000 ;Нормальный режим Таймера 1
out TCCR1A, temp

ldi temp,0b00000011;Нормальный режим Таймера 1
out TCCR1B, temp

ldi temp, 0b00000011
main:
out SFIOR, temp
rjmp main ; К началу цикла
Реклама:
analitik33 вне форума  
Непрочитано 29.10.2008, 13:05  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Загадочный сброс предделителя таймеров 0 и 1 Меги16

Сообщение от analitik33
В даташите на AVR ATmega16 на листах 87-88 указано, что синхронные таймеры-счетчики 0 и 1 имеют общий предделитель. Соответственно, его сброс битом 0 регистра SFIOR воздействует на оба таймера.
Прогон в AVR-Студии дал пораэительный результат: Т0 стоял как и ожидалось, а вот Т1 ведет счет не обращая внимания на сбросы!!! В железе тест не прогонялся. ???
Действительно, даже на рисуночке разрисовано.
Нужно действовать методом научного ТЫКА, прогнать в Протеусе и в железе.

Во первых могет Студия не совсем коректно симулирует.
Всё таки софт безплатный. Хотя ИМХО глюков меньше чем в Протеусе ))))

А вообще, ATMEL отличалась не слишком точной ИНФО по МК AVR. Микрочип в этом отношении намного аккуратнее.

-- Прилагается рисунок: --

picavr вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сброс NE-4110S фирмы Moxa sergeq Микроконтроллеры, АЦП, память и т.д 0 03.07.2009 16:02
калькулятор для расчета таймеров счетчиков для AVR dimonbest Proteus, KiCAD и другие ECAD 23 21.09.2007 08:55
Как установить фьюзы для внешнего кварца Меги16? Zemlyanov Микроконтроллеры, АЦП, память и т.д 30 04.09.2007 11:54
Сброс и запуск МК CERGEI1982 Микроконтроллеры, АЦП, память и т.д 3 09.08.2007 13:43
AVRstudio 4.11 не симулирует прерывания таймеров tiny2313 graham Микроконтроллеры, АЦП, память и т.д 10 27.12.2005 14:59


Часовой пояс GMT +4, время: 23:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.