реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Atmega8 CTC, Atmega8 CTC
Prinz
сообщение Mar 18 2009, 09:11
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Добрый день.
Помогите разобраться!
Как заставить формироваться сигнал на выходе порта от таймера в режиме CTC?
Обычный быстрый шим работает.
OCR1A = 100;
TCCR1A = 0xA1;
TCCR1B = 0x09;
OCR1B = 127;
Но его скорость не устраивает.
Просто инверисия порта тоже.
А вото формулка которая привидена в пдф в режиме CTC очень устраивает.
приведите если можно пример инициализации.
Таймер1 Atmega8.


smile3046.gif
Очень нужна помощь.
Кварц 16MHz
А по формуле приведённой в пдф можно получить на выходе частоту до 8 MHz.
В этом именно режиме.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Mar 18 2009, 09:26
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Prinz @ Mar 18 2009, 12:11) *
А по формуле приведённой в пдф можно получить на выходе частоту до 8 MHz.
Зачем Вам такие частоты? Вы обратили внимание, что то той же формуле: следуюшая частота только 4 МГц, а последующая 2.667 МГц?
Go to the top of the page
 
+Quote Post
Prinz
сообщение Mar 18 2009, 09:34
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Цитата(Палыч @ Mar 18 2009, 14:26) *
Зачем Вам такие частоты? Вы обратили внимание, что то той же формуле: следуюшая частота только 4 МГц, а последующая 2.667 МГц?

Да, конечно.
Собственно говоря мне и надо получить 4 MHz.
Не могу понять, как сделать этот режим, вроде всё просто, а не работает. sad.gif
Go to the top of the page
 
+Quote Post
domowoj
сообщение Mar 18 2009, 09:47
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



А почему именно СТС?


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
andrikk
сообщение Mar 18 2009, 09:52
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 23-07-08
Пользователь №: 39 167



Код
  TCCR1A = _BV(COM1A0);            //toggle OC1A pin on compare match
  TCCR1B = _BV(WGM12) | _BV(CS10);                     //clk/1 CTC
//  OCR1A = 0;                //F_CPU/2
  OCR1A = 1;                //F_CPU/4
Go to the top of the page
 
+Quote Post
Prinz
сообщение Mar 18 2009, 10:06
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Спасибо всем.
Сам тоже сейчас разобрался. Сделал так:
OCR1A = 1;
TCCR1A = 0x43;
TCCR1B = 0x19;
Получил 4MHz.
Ещё раз всем спасибо. biggrin.gif

rolleyes.gif
Go to the top of the page
 
+Quote Post
Палыч
сообщение Mar 18 2009, 10:17
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Prinz @ Mar 18 2009, 13:06) *
Сам тоже сейчас разобрался. Сделал так...
Что-то я не понял... Это же - Fast PWM, а не CTC...
Go to the top of the page
 
+Quote Post
Prinz
сообщение Mar 19 2009, 05:41
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Цитата(Палыч @ Mar 18 2009, 15:17) *
Что-то я не понял... Это же - Fast PWM, а не CTC...


Да. Это он самый.
Просто дочитал до того места где быстрый шим из него можно получить. Там также всё считается. smile.gif
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Mar 19 2009, 09:59
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



как-то так :
Код
TCCR1A = (1<<COM1A0);
TCCR1B = (1<<WGM12)|(1<<CS10);
OCR1A = 1;
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016