Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прошу помощи в настройке таймера Tiny461
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
smk
Т.к. есть нужда сменить кристалл, нужно портировать программу с mega48 на tiny461. Казалось бы просто. но таймер 1 там очень отличается. Помогите повторить настройки таймера. Нужно настроить таймер 1 в tiny461 как уже настроен mega48. Код, что сейчас работает в mega48:
Код
void TIMER1_INIT(void)
{
TCCR1B=(1<<WGM13)|(1<<CS10);
TCCR1A=(1<<COM1B0)|(1<<COM1B1)|(1<<COM1A1)|(1<<WGM11);
OCR1BH=0x00;
OCR1BL=118;//65
OCR1AH=0x00;
OCR1AL=115;//98
ICR1H=0x00;
ICR1L=233;
TCNT1H=0;
TCNT1L=0;
}
Спасибо.
kovigor
Цитата(smk @ Mar 28 2011, 21:49) *
Т.к. есть нужда сменить кристалл, нужно портировать программу с mega48 на tiny461.


Так и портируйте. Подозреваю, что даташит вы даже не удосужились открыть. Правильно, а зачем, если есть форум ?
А открыть и изучить его таки придется. И тогда вы сможете со знанием дела запустить CodeVision и в его Wizard'е сгенерировать такой шаблон проекта, который вам нужен ...

http://www.hpinfotech.ro/html/products.htm
nk@
Портировать не получится, прийдется слегка (или даже сильно) переделать. Таймеры в меге48 и тини461 сильно отличаются. Здесь одной инициализацией не всегда можно обойтись. Дело в том, что, судя по дкументации, у таймера тини461 нет режима "PWM Phase correct"(именно он используется в Вашем коде), а есть только "PWM Phase and Frequency correct".
В Вашем случае, нужно иметь полное понимание того, что Ваше изделие делает (называется полное ТЗ).

PS: Мне интересно, какими причинами вызвана необходимость замены кристалов? Я понимаю ситуацию, когда микросхему сняли с производства, но мегу48, вроде как, с производства не снимают. Где здравый смысл?
skyled
Даташит я открыл. Код переделал. Вышло не вполне то, что я хотел. Симметрии нет и частота выше. Вот и решил попросить помощи у того, кто это уже проходил. CVAVR не пользую. Пробовал калькулятор таймеров в ICC, но там ерунда вообще выходит. Ну вобщем прошу подсказать тех, кто этот таймер конфигурировал в то, что мне надо и на практике все получалось согласно теории. Спасибо.

Цитата(nk@ @ Mar 29 2011, 08:33) *
Портировать не получится, прийдется слегка (или даже сильно) переделать. Таймеры в меге48 и тини461 сильно отличаются. Здесь одной инициализацией не всегда можно обойтись. Дело в том, что, судя по дкументации, у таймера тини461 нет режима "PWM Phase correct"(именно он используется в Вашем коде), а есть только "PWM Phase and Frequency correct".
В Вашем случае, нужно иметь полное понимание того, что Ваше изделие делает (называется полное ТЗ).

PS: Мне интересно, какими причинами вызвана необходимость замены кристалов? Я понимаю ситуацию, когда микросхему сняли с производства, но мегу48, вроде как, с производства не снимают. Где здравый смысл?

С мегами последнее время творится непонятно что. Цены скачут невообразимо. от 1,5 до 5 у.е. Мега меня и по выводам устраивает, но нужен вариант с тинькой т.к. их есть запас и в случае с дурной ценой на мегу есть альтернатива.

Для понимания - управление полумостом на 17 кГц.
Vasily_
Цитата
Цены скачут невообразимо. от 1,5 до 5 у.е.


Это где они так скачут? я покупал 48РА по 1.01$ сейчас их полно по 0.9$.
Fedor1
Цитата(smk @ Mar 28 2011, 22:49) *
Т.к. есть нужда сменить кристалл, нужно портировать программу с mega48 на tiny461. Казалось бы просто. но таймер 1 там очень отличается. Помогите повторить настройки таймера. Нужно настроить таймер 1 в tiny461 как уже настроен mega48. Код, что сейчас работает в mega48:
Код
void TIMER1_INIT(void)
{
TCCR1B=(1<<WGM13)|(1<<CS10);
TCCR1A=(1<<COM1B0)|(1<<COM1B1)|(1<<COM1A1)|(1<<WGM11);
OCR1BH=0x00;
OCR1BL=118;//65
OCR1AH=0x00;
OCR1AL=115;//98
ICR1H=0x00;
ICR1L=233;
TCNT1H=0;
TCNT1L=0;
}
Спасибо.

Сколько тебе надо 48-х? О цене договоримся.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.