- Код: Выделить всё • Развернуть
#include <avr/io.h>
//Програма инициализации ШИМ
void init_pwm (void)
{
TCCR1A=(1<<COM1A1)|(1<<WGM10); //На выводе OC1A единица, когда OCR1A==TCNT1, восьмибитный ШИМ
TCCR1B=(1<<CS10); //Делитель= /1
OCR1A=0x00; //Начальное значение
}
//Основная програма
int main(void)
{
unsigned char i;
DDRD=0x32; //Инициализация PD5 (OC1A) как выход
init_pwm();
OCR1A=0x40;
while (1)
{
}
return 1;
}
Компилирую всё это дело в AVRStudio, схему тоже взял из примера:
В примере объяснений мало и ничего не понятно. Пытаюсь менять по-разному значение OCR1A, но закономерность интуитивно не могу понять.
Может кто-нибудь внятно объяснить что означает каждая строчка в подпрограмме инициализации (init_pwm), какие параметры ФНЧ(R и C) и значение OCR1A мне нужно брать , допустим, если я хочу получить на выходе PD5 сначала 1В а потом 3В (т.е. прошу два примера для ясности)?
Спасибо заранее!