Шим на атмег16
Шим на атмег16
как нужно настроить таймер Т1 для шима и как можно управлять длительностью? (если можно то где можно об этом почитать?)
Re: Шим на атмег16
В даташите исчерпывающе написано.
Re: Шим на атмег16
я не очень с английским( а русский даташит не нашел
- eess9
- Вымогатель припоя
- Сообщения: 672
- Зарегистрирован: Ср фев 29, 2012 01:58:32
- Откуда: Харьков, Украина
Re: Шим на атмег16
dartmolot писал(а):как нужно настроить таймер Т1 для шима
вопрос из разряда как сделать так, чтобы что-то работало. Частота тактирования кристалла, частота ШИМ, один или два канала нужно, в каких пределах планируете менять скважность и с каким шагом? Увы, какой вопрос, такой и ответ от сообщества...
dartmolot писал(а):как можно управлять длительностью?
при помощи регистра сравнения канала
Re: Шим на атмег16
ну если подробно то нужен режим Fast PWM настроить, и посмотреть как работает в протеусе, в интернете нашел примерно как это делается ,но вот что то неполучается
- eess9
- Вымогатель припоя
- Сообщения: 672
- Зарегистрирован: Ср фев 29, 2012 01:58:32
- Откуда: Харьков, Украина
Re: Шим на атмег16
dartmolot писал(а):но вот что то неполучается
не хотите вы понимать простую истину: на четкий вопрос вы получаете четкий ответ.
Если у вас что-то не получается, сделайте что-то по другому.
В противном случае опишите проблему с приведением своего кода.
- Mishany
- Электрический кот
- Сообщения: 1031
- Зарегистрирован: Чт июн 20, 2013 00:00:58
- Откуда: москва, м.Сходненская
Re: Шим на атмег16
а еще текст из даташита отлично копируется для вставки в любой переводчик, и не знание английского сдесь не причем.
Re: Шим на атмег16
Посмотрел темы автора. Очередной студятел, прогулявший пары 
Re: Шим на атмег16
hybroid писал(а):Посмотрел темы автора. Очередной студятел, прогулявший пары
ну если ты такой умный подсказал бы чтоль, я же не прошу сделать за меня , мне только нужен совет или пример,
Re: Шим на атмег16
А я такой умный, потому что привык сначала своими мозгами пользоваться. Так что давай, тренеруй, и тоже дураком не помрёшь.
Re: Шим на атмег16
Вот такая же фигня и со мной была... Многие говорят и говорят, типа, читай... А находяться единицы, которые просто скинут пример, а его разберешь и научишься и так гораздо быстрей учительство осуществляется.
А многие "учителя" видать, не понимают, что тема новичкам интересна, но с чего начать новички не понимают совсем.
Новичкам, молоко надо, а "учителя" сразу мясо дают, которое не усваивается.
А многие "учителя" видать, не понимают, что тема новичкам интересна, но с чего начать новички не понимают совсем.
Новичкам, молоко надо, а "учителя" сразу мясо дают, которое не усваивается.
- Вложения
-
- 16mega_3PWM_GOOD.zip
- (49.38 КБ) 136 скачиваний
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Шим на атмег16
Sel4 писал(а):А многие "учителя" видать, не понимают, что тема новичкам интересна, но с чего начать новички не понимают совсем.
многие учителя начинали начинать
По коду:
TCCR2 = 0b11100100;//тут поиграйся с битами -увидишь, как меняется частота и пр.
TCCR1A = 0b10100010;//например, TCCR2 = 0b1110000100 - частота будет ниже
имхо лучше не "играться с битами", а прочесть документацию за что каждый бит отвечает.
TCCR2 = 0b1110000100! у AVR появился десятибитный регистр?
запись 0b11100100 в IAR AVR работать не будет
Предложу тестовый код:
Код: Выделить всё
#include <avr/io.h>
#include <util/delay.h>
uint16_t setPWM = 0;
int main(void)
{
// PORTD bit5 set OUT
DDRD = (0 << DDD7) | (0 << DDD6) | (1 << DDD5) | (0 << DDD4) | (0 << DDD3) | (0 << DDD2) | (0 << DDD1) | (0 << DDD0);
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Fast PWM top=0x03FF
// OC1A output: Non-Inverted PWM
// OC1B output: Disconnected
TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (0 << COM1B1) | (0 << COM1B0) | (1 << WGM11) | (1 << WGM10);
TCCR1B = (0 << ICNC1) | (0 << ICES1) | (0 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10);
while (1)
{
setPWM++;
//To do a 16-bit write, the High byte must be written before the Low byte.
OCR1AH = (uint8_t)(setPWM >> 8);
OCR1AL = (uint8_t)(setPWM);
_delay_ms(10);
}
} Re: Шим на атмег16
Ну проще ж кинуть работающий пример, чем настукать больше символов на клаве во нравоучения..
Очевидно, в коде хотел записать
Это понятно, что надо читать.. В данном случае очень наглядненько видно , что будет при изменении каждого бита, топому и написал )) А как менять ширину импульса ? ))) написав значение переменной?
Очевидно, в коде хотел записать
Код: Выделить всё
TCCR2 = 0b11100[b]001[/b];//тут поиграйся с битами -увидишь, как меняется частота и пр.
TCCR1A = 0b10100010;//например, TCCR2 = 0b11100100 - частота будет ниже [i]а тут перебрал с нулями))[/i]Это понятно, что надо читать.. В данном случае очень наглядненько видно , что будет при изменении каждого бита, топому и написал )) А как менять ширину импульса ? ))) написав значение переменной?
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Шим на атмег16
..очень наглядненько видно...
TCCR1A = 0b10100010;//например, TCCR2 = 0b11100100 - частота будет ниже а тут перебрал с нулями))
TCCR2 регистр какого таймера? Не "наглядненько". Подтверждение того, что надо пользоваться только документацией.
Пример мой рабочий - проверено, правда в протеусе. Ширина импульса задается переменной "setPWM" или надо записать значение "ширины" непосредственно в регистры OCR1AH и OCR1AL в определенной последовательности (последовательность действий расписана в документации).
В документации даже есть примеры на ассемблере и Си.
Re: Шим на атмег16
Та лан тебе )) покрутит, покурит даташит совместно с примером, да разберется что к чему и как настраивается таймер T1 ))))