vitalik_1984 писал(а):в регистре таймера и сохраняет.
TCRx, TCRLx TCRHx.
Топишь включил таймер, он своё отработал, потом пишем, что если TCRх больше указанного числа, то . . .
Понятно -- дошло. Спасибо!
vitalik_1984 писал(а):в регистре таймера и сохраняет.
TCRx, TCRLx TCRHx.
Код: Выделить всё
if (10>TCNT0>5)Код: Выделить всё
#asm ("sleep");
Код: Выделить всё
asm volatile ("sleep"); Код: Выделить всё
sleepУгу. А если подробнее - GCC. аврстудия - это IDE.vitalik_1984 писал(а):AVR Studio вроде
Код: Выделить всё
#include <avr/io.h>//библиотека ввода/вывода
//Програма задержки
void pause (unsigned int a)
{
unsigned int i;
for (i=a;i>0;i--);
}
//Програма инициализации ШИМ
void init_pwm (void)
{
TCCR1A=(1<<COM1A1)|(1<<WGM10); //На выводе OC1A единица, когда OCR1A==TCNT1, восьмибитный ШИМ
TCCR1B=(1<<CS10); //Делитель= /1
OCR1A=0x00; //Начальная яркость нулевая
}
//Основная програма
int main(void)
{
unsigned char i;
DDRB=0x02; //Инициализация PB1 (OC1A) как выход
init_pwm();
while (1)
{
for (i=0;i<255;i++) //Плавно повышаем яркость
{
OCR1A++;
pause(1000);
}
for (i=0;i<255;i++) //Плавно понижаем яркость
{
OCR1A--;
pause(1000);
}
}
return 1;
}Код: Выделить всё
int main(void)Код: Выделить всё
void main(void)Код: Выделить всё
void pause (unsigned int a)
{
unsigned int i;
for (i=a;i>0;i--);
}
Код: Выделить всё
int sum(int a, int b)
{
return a+b;
}Код: Выделить всё
sum_result = sum(1, 2);