Страница 1 из 1
2313 : переполнение счётчика
Добавлено: Пт авг 17, 2007 17:53:54
Steam
Здравствуйте!
Задача такова: нужно чтобы частота счётчика/каунтер 1 была равна частоте внешнего кварца (32768Hz) и чтобы срабатовала определённая фунцкия от прерывания (№6).
Поставил регистры
Код: Выделить всё
TIMSK = 0b10000000;
TIFR = 0b10000000;
TCCR1B = 0b00000110;
Поставил разрешение на прерывания (SEI), но ничего не получается

(эмулирую в Proteus);
Добавлено: Пт авг 17, 2007 18:03:17
tych
Попробуйте мастер настройки МК компилятора ICC - очень наглядно и выдает готовый код программы.
Смотрите задачу 6 в курсе по линку в моем профиле.
Добавлено: Пт авг 17, 2007 18:09:46
Aheir
Мне вот так CodeVision ответил:
Код: Выделить всё
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 32,768 kHz
// Mode: Normal top=FFFFh
// OC1 output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x01;
TCNT1H=0x00;
TCNT1L=0x00;
OCR1H=0x00;
OCR1L=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x80;
А вот это
TIFR = 0b10000000;
зачем?
И вообще, это в
мелкие вопросы...
Добавлено: Пт авг 17, 2007 18:16:18
Steam
Aheir писал(а):А вот это
TIFR = 0b10000000;
зачем?
Вроде как так в мануале написано
Добавлено: Пт авг 17, 2007 18:34:44
Steam
Запустил мастер в ICCAVR - в симуляторе всё равно не работает

Сейчас попробую в CodeVision.
=====================
Попробовал - тоже не получается. Значит, что Proteus не умеет симулировать внешние резонаторы?
Добавлено: Пт авг 17, 2007 18:52:08
tych
Их частоты задают в свойствах МК.
Добавлено: Пт авг 17, 2007 18:54:22
Mr.Moss
А что ты подал на T1? (TCCR1B = 0b00000110 - спадающий фронт на выводе T1)
И вообще, определись от кварца ты хочеш тактировать счетчик или от внешнего тактового сигнала?
Прошу прощения что на ТЫ!
Добавлено: Пт авг 17, 2007 18:54:30
tych
Steam писал(а):Запустил мастер в ICCAVR - в симуляторе всё равно не работает
Код опубликуйте и объясните чем тактируется ваш МК.
Добавлено: Пн авг 20, 2007 13:27:13
Steam
tych писал(а):Их частоты задают в свойствах МК.
В свойствах МК я нашёл только частоту клоков и ватчдога.
Mr.Moss писал(а):А что ты подал на T1?
К T1 и T0 подключил кварц напрямую (как в мануале нарисаванно)
P.S. Мне нужно чтобы счётчик Timer/Counter 1 переполнялся 0.5 раз в секунду (беру кварц на 32768 Гц). Делаю что-то типа часов

Добавлено: Пн авг 20, 2007 13:44:25
Negor
Так что нужно? Описание как расчитать таймер? Если да на форуме это есть(в обучалке кстати тоже). Если нет уверенности что таймер от кварца считает, то выводи значения TCNT на порт сосветодиодами.
Добавлено: Пн авг 20, 2007 13:54:40
Steam
Таймер то я расчитал. Нужно чтобы System Clock работал от одного кварца(10 МГц), а Timer/Counter 1 от другого кварца(32768 Гц).
Добавлено: Пн авг 20, 2007 22:33:39
Mr.Moss
И гдеже такое написано, что на T0 и T1 нужно кварц подключать?

Добавлено: Вт авг 21, 2007 00:02:22
Negor
Такого конечно нигде не написано, но это нигде и не запрещается

. К тому же, раз в настройках таймера есть возможность счёта внешних импульсов, то значит подразумевается и возможность подключения внешнего генератора... А вот рисунка где подключают кварц к таймеру, я в даташите не нашёл... может надо соорудить генератор на логике с кварцом и тогда всё будет норм? Потому что даже в даташите Меги8(хоть там и есть работа таймера от внешнего кварца, да ещё и оптимизирован этот таймер под кварц на 32,768 кГц) нет рисунка как кварц подключать...
Добавлено: Вт авг 21, 2007 00:16:55
Mr.Moss
Вот вот, и я отом же, к выводам T1 и T0 нужно подключать внешний тактовый сикнал, а не кварц, который сам по себе не может являтся источником сигнала.
Добавлено: Вт авг 21, 2007 08:18:14
Steam
Что-то я тормознул немножко..... Был полностью уверен, что схемку подключения кварца видел в даташите.... Оказалось, что в апноуте AVR134 и там у МК есть асинхронный коунтер и выводы TOSC1 и TOSC2
