Gast
#997058
Hallo ich fange bin ein Anfänger auf dem Gebiet der uController. Nachdem ich eine LED mit einer einfachen __delay_cycles(500000); Anweisung zum blinken gebracht habe also PORTB = 0x01; __delay_cycles(500000); PORTB = 0x00; __delay_cycles(500000); möchte ich mit flag und interrupt das Programm "besser" machen. Scheinbar habe ich es noch nicht verstanden. Ich habe folgenden Code: ----------------------- #include <inavr.h> #include "iom169.h" void main( void ) { ///////////////////////Port ini///////////////// DDRB = DDRB | 0x01; // OCCRA output PORTB = PORTB & 0xFB; // out lvl =0; ///////////////////////PWM ini////////////////// ///////////////////////////////////////////////////////////// TCCR0A_Bit0= 1; // CS00 TCCR0A_Bit1=0; // CS01 TCCR0A_Bit2= 1; // CS02 /// output modus clk/1024 ///////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// TCCR0A_Bit4=1; // COM0A0 TCCR0A_Bit5=1; // COM0A1 /// Modus - If one or both bits are set, the OC0A output overrides the normal port functionality of the I/O pin it is connected to ////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// TCCR0A_Bit3=0; // WGM00 TCCR0A_Bit6=0; // WGM01 /// bit 7 erzwingt einen toggle beim setzen, für prog vielleicht nötig, jedoch nicht für ini ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// TCNT0 = 0x00; // counter reset OCR0A = 0x7F; // 8 bit counter max val= 0xFF somit bei 0x7F -> gleich 50% tastgad //////////////////////////////////////////////////////////// TIFR0 = TIFR0| 0x01; // interrupt wird Freigeschalten fuer out compare, fuer blinkende //LED ist das eigentlich nicht nötig //// ini Fertig //// while (1) { if (OCR0A > 0x7F) { PORTB = 1; } if (OCR0A < 0x7F) { PORTB = 0; } } // endlose loop; } ------------------------------- Kann mir jemand sagen wo der Fehler liegt. Mein zweites Problem ist, dass ich keine kleinen und erklärten Beispiele für AVR Butterfly (IAR) finden kann wo ich sehe wie Programme funktionieren können. Kennt jemand eine Seite (oder ein gutes Buch) nennen die mir als Anfänger weiterhelfen kann. Der Einstieg mit Register vor und Zurück ohne Beispielprogramme finde ich ziemlich heftig. Vielen Dank