Цитата(Begginer @ Nov 5 2006, 21:26)

Я не говорю за меня. Как сделать ШИМ одноканальный то понятно, а вот как трех? Сделать ешще два выхода и по аналогии считать для них длительность??
Программно, без использования PWM.
простейший пример:
Код
unsigned char R = 255;
unsigned char G = 70;
unsigned char B = 50;
#define R_Led (PB0)
#define G_Led (PB1)
#define B_Led (PB2)
main()
{
unsigned char cnt = 0;
unsigned char PortBuf;
DDRB = 0xFF;
for(;;)
{
PortBuf = 0;
if (R >= cnt)
PortBuf |= (1 << R_Led);
if (G >= cnt)
PortBuf |= (1 << G_Led);
if (B >= cnt)
PortBuf |= (1 << B_Led);
PORTB = PortBuf;
cnt++;
}
}
сделайте то же самое, только код перенесите в обработчик прерывания по переполнению например таймера 0.