Hallo,
Was mir auffällt ist das das CS10 im falschen Register ist. Sollte TCCR1B sein. Ob es weitere Fehler gibt habe ich nicht geschaut.
PS: Für Quelltext ging es eigene Code Eingabefelder. Ist leichter zu lesen.
MfG Hannes
Hallo,
ich bin ein Anfänger und möchte an meinen Atmel (Atmega16an 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.
Hallo,
Was mir auffällt ist das das CS10 im falschen Register ist. Sollte TCCR1B sein. Ob es weitere Fehler gibt habe ich nicht geschaut.
PS: Für Quelltext ging es eigene Code Eingabefelder. Ist leichter zu lesen.
MfG Hannes
Benutzer, die dieses Thema gelesen haben: 0
Lesezeichen