PWM atmega8

Обсуждаем контроллеры компании Atmel.
Ответить
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

Делаю контроллер rgb светодиодной ленты на atmega8. Конфигурирую шим так:

Код: Выделить всё

DDRB = 0b00001110;
TCCR2 = (1<<WGM20)|(1<<WGM21)|(1<<COM21)|(1<<CS22);
TCCR1A = (1<<WGM10)|(1<<WGM11)|(1<<COM1A1)|(1<<COM1B1);
TCCR1B = (1<<CS11)|(1<<CS10);
While(1) выглядит вот так:
Спойлер

Код: Выделить всё

	while (1)
	{
		int i = 0;
		for (i = 0; i <= 0xff; i++, _delay_ms(t))
		{
			r_ch = 0xff * i;
			g_ch = 0xff - i;
			b_ch = 0xffff;
		}
		for (i = 0; i <= 0xff; i++, _delay_ms(t))
		{
			g_ch = i;
			b_ch = 0xff*(0xff - i);
			r_ch = 0xffff;
		}
		for (i = 0; i <= 0xff; i++, _delay_ms(t))
		{
			b_ch = i;
			r_ch = 0xff*(0xff - i);
			g_ch = 0xff;
		}
	}
Но получается не плавно переливающийся цвет, а какой-то "рваный" переливающийся
В чём может быть косяк? Я правильно понял что шим на OC1A и OC1B - 16ти разрядные, а OC2 - 8ми разрядный?
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

daaar писал(а):Я правильно понял что шим на OC1A и OC1B - 16ти разрядные, а OC2 - 8ми разрядный?
правильно. поэтому надо все 3 ШИМ-канала настраивать на FastPWM 8 bit и не мудрить.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

[uquote="ARV",url="/forum/viewtopic.php?p=3134490#p3134490"]надо все 3 ШИМ-канала настраивать на FastPWM 8 bit и не мудрить.[/uquote]
Спасибо, это помогло. Но если OCR1 16ти битный, то почему в datasheet его можно настроить только как 10и битный?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

можно и как 8битный — ставишь ТОПом регистр захвата, например, если он не используется, и в него 0x00FF вписываешь — и всё таймер будет считать как 8 битный и оба регистра сравнения останутся доступны для работы.

Добавлено after 4 minutes 12 seconds:
так как посмотреть негде а на все 146% я не уверен в правильности написания названий регистров и режимов таймера то написал по русски, думаю, что понять это можно.
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3134521#p3134521"]можно и как 8битный — ставишь ТОПом регистр захвата, например, если он не используется, и в него 0x00FF вписываешь — и всё таймер будет считать как 8 битный и оба регистра сравнения останутся доступны для работы.[/uquote]
Я не совсем корректно задал вопрос, я подразумевал что можно настроить 8,9 и 10и битный ШИМ, а 16и битный нельзя? Но таймер же 16и битный
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

там есть режимы и 16 битного шима — режимы с частотной и фазовой коррекцией. только частота 16 битного ШИМа будет в 256 раз ниже 8 битного при одинаковом тактировании
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

зачем вам 16 бит, если третий канал все равно 8 бит?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

[uquote="ARV",url="/forum/viewtopic.php?p=3134529#p3134529"]зачем вам 16 бит, если третий канал все равно 8 бит?[/uquote]
На будущее
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

будущее не предопределено © Сара Коннор :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Режимы 1000 - 1011, 1110, 1111 в помощь: разрядность задается регистром ICR1 либо OCR1A и может быть до 0xFFFF.
Ответить

Вернуться в «AVR»