Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите получить меандр
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
fars
Есть мега8 с внешним тактированием 14,7456 МГц

Нужно получить меандр на таймере1 125кГц на выходе OC1A(PB1).

Что я зделал

я выставил ногу pb1 на выход

PORTB=0x00;
DDRB=0x02;


Посчитал что, если подать системную частоту, то

125кГц(8мкс) - это 118 тактов, то есть в OCR1A записал 0х0075

в счетчик таймера TCNT1 записал 0х00ЕА

в управляющие регистры таймера

TCCR1A = 0x00;
TCCR1B = 0x19;

Все вроде по даташиту и не работает.

Покажите где ошибся. Или код напишите
Палыч
То, что ногу РВ1 поставили на вывод - хорошо. А, вот с настройкой таймера - имхо, беда...
Нужно:
Режим таймера (mode) выставить 4 (CTC) (WGM13/12/11/10 = 0100)
No prescaling (CS12/11/10= 001)
Toggle OC1A (COM1A1/0 = 01)
В OCR1A занести число (что Вы там насчитали? 118?)
В TCNT1 заносить ничего не надо (там по сбросу 0)
Вроде - всё...

Да, ещё совет: не записывайте настройки портов типа "TCCR1B = 0x19;" - это неинформативно, пишите, примерно, так: "TCCR1B = (1<<WGM13) | (1<<CS10);". При такой записи легче будет и Вам найти ошибку, и тем, кто возьмется Вам помочь...
fars
Разобрался)))) Большое спасибо. biggrin.gif

Цитата(Палыч @ Apr 15 2010, 18:07) *
Да, ещё совет: не записывайте настройки портов типа "TCCR1B = 0x19;" - это неинформативно, пишите, примерно, так: "TCCR1B = (1<<WGM13) | (1<<CS10);". При такой записи легче будет и Вам найти ошибку, и тем, кто возьмется Вам помочь...


Хорошо. Будем исправлятся)))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.