Unregistriert
24.01.2015, 18:01
Hallo,
ich bin ein Anfänger und möchte an meinen Atmel (Atmega168) an 3Ports ein PWM Signal für eine RGB LED ausgeben.
Bei mir funktionieren momentan aber nur 2Ports (OCR0A=0; OCR0B=0). Was muss ich an dem PortB1 (OCR1A) einstellen,
damit ich auch diesen nutzen kann.
#define F_CPU 1600000
#include <avr/io.h>
#include <util/delay.h>
void wait (int i)
{
int n=0;
while (n<i)
{
_delay_us(50);
n++;
}
}
int main( void )
{
TCCR0A=0b10100011; TCCR0B =0b00000010; TCNT0=0x00; TIMSK0=0x00;
TCCR1A= (1<<COM1A1) | (1 << WGM10) | (1 << WGM11) | (1 << CS10);
OCR0A=0; OCR0B=0; OCR1A=0;
DDRD = 0b11100000;
DDRB = 0b00000011;
int a =1;
int b =1;
int c =1;
int min = 1;
int max = 255;
while( 1 )
{
while (a<250)
{
OCR0A = c;
wait(c);
a++;
}
while (c<max)
{
OCR1A = a;
wait(200);
c++;
}
while (b<max)
{
OCR0B = b;
wait (300);
b++;
}
while (b>min)
{
OCR0B=b;
wait(300);
b--;
}
while (a>min)
{
OCR0A=a;
wait(100);
a--;
}
while (c>min)
{
OCR1A=c;
wait(200);
c--;
}
}
}
vielen Dank im vorraus.
ich bin ein Anfänger und möchte an meinen Atmel (Atmega168) an 3Ports ein PWM Signal für eine RGB LED ausgeben.
Bei mir funktionieren momentan aber nur 2Ports (OCR0A=0; OCR0B=0). Was muss ich an dem PortB1 (OCR1A) einstellen,
damit ich auch diesen nutzen kann.
#define F_CPU 1600000
#include <avr/io.h>
#include <util/delay.h>
void wait (int i)
{
int n=0;
while (n<i)
{
_delay_us(50);
n++;
}
}
int main( void )
{
TCCR0A=0b10100011; TCCR0B =0b00000010; TCNT0=0x00; TIMSK0=0x00;
TCCR1A= (1<<COM1A1) | (1 << WGM10) | (1 << WGM11) | (1 << CS10);
OCR0A=0; OCR0B=0; OCR1A=0;
DDRD = 0b11100000;
DDRB = 0b00000011;
int a =1;
int b =1;
int c =1;
int min = 1;
int max = 255;
while( 1 )
{
while (a<250)
{
OCR0A = c;
wait(c);
a++;
}
while (c<max)
{
OCR1A = a;
wait(200);
c++;
}
while (b<max)
{
OCR0B = b;
wait (300);
b++;
}
while (b>min)
{
OCR0B=b;
wait(300);
b--;
}
while (a>min)
{
OCR0A=a;
wait(100);
a--;
}
while (c>min)
{
OCR1A=c;
wait(200);
c--;
}
}
}
vielen Dank im vorraus.