Hallo Sebastian,

ich glaube, ich habs jetzt mit Eurer Hilfe hinbekommen.
Die LED ändern fließend die Helligkeit in einem "zufälligem Muster"...

Könnte man das kompakter schreiben?

Grüße

popi


#include <avr/io.h>


unsigned char x = 2;
unsigned short i;

void main(void)
{
PORTB = (1<< PB4);
DDRB = (1<< DDB4);
OCR0 = 0x00;
TCCR0 = (1 << WGM00) | (1<< COM01) | (1<< CS00);// | (1 << WGM01);


while(x==2)
{
while(OCR0 <= 0x60) {for (i=0;i<500;i++) asm volatile("NOP"); OCR0 = OCR0 + 1;}
while(OCR0 >= 0x40) {for (i=0;i<300;i++) asm volatile("NOP"); OCR0 = OCR0 - 1;}

while(OCR0 <= 0xCF) {for (i=0;i<700;i++) asm volatile("NOP"); OCR0 = OCR0 + 1;}
while(OCR0 >= 0x10) {for (i=0;i<100;i++) asm volatile("NOP"); OCR0 = OCR0 - 1;}

while(OCR0 <= 0x70) {for (i=0;i<300;i++) asm volatile("NOP"); OCR0 = OCR0 + 1;}
while(OCR0 >= 0x05) {for (i=0;i<500;i++) asm volatile("NOP"); OCR0 = OCR0 - 1;}

while(OCR0 <= 0xEE) {for (i=0;i<100;i++) asm volatile("NOP"); OCR0 = OCR0 + 1;}
while(OCR0 >= 0x05) {for (i=0;i<400;i++) asm volatile("NOP"); OCR0 = OCR0 - 1;}

while(OCR0 <= 0xfe) {for (i=0;i<100;i++) asm volatile("NOP"); OCR0 = OCR0 + 1;}
while(OCR0 >= 0x20) {for (i=0;i<50;i++) asm volatile("NOP"); OCR0 = OCR0 - 1;}
}
}