Hallo liebe Gemeinde, ich benutze einen Atmega32 mit einem 11MHz Quarz. Entwicklungsumgebung ist das AVR Studio 4. Nun zu meinem Problem: ich möchte eine LED langsam aufleuchten lassen, und direkt wieder ausgehen lassen(Fading). Im Moment habe ich das alles mit dem Timer0 gemacht, würde es aber gern mit dem Timer1 oder 2 machen, da ich den Timer0 noch für andere Sachen benötige. Mit dem Timer0 funktioniert das ganze prima. Kann mir jemand Tipps geben, wie ich das ganze auf Timer1 oder 2 umschreiben kann? Hier der Code: //Programm zum Einfaden mit direkt folgendem Ausfaden //20.04.2015 #include <avr/io.h> #include <avr/interrupt.h> #define dimmgeschw 5; //Dimmgeschwindigkeit von 0 bis 1,2^38 einstellbar float i=0; char alternierendevariable=0; int main(void) { DDRB = 0x08; TCNT0=0x00; TCCR0 |= 1<<WGM00 | 1<<WGM01 | 1<<CS00 | 1<<CS02 | 1<<COM01; while(1) { if (alternierendevariable==0) { i+=dimmgeschw; OCR0=i/1000; if (i>=255000) { OCR0 = 0xff; alternierendevariable=~alternierendevariable; } } else if (alternierendevariable==255) { i-=dimmgeschw; OCR0=i/1000; if (i==0) { OCR0 = 0x00; alternierendevariable=~alternierendevariable; } } } } Freu mich schon auf eure Ratschläge und Lösungsansätze. MFG Oli
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.