Hallo, ich habe eine Frage zur C-Programmierung und Interrupts. Ich habe schon das User Manual gelesen und auch einen Teil - Code davon kopiert, aber leider funktioniert es nicht so recht. Ziel ist es über einen Taster an RB5 die LEDs an PORTD zu steuern. #include <p18F458.h> #include <p18F458_Config.h> //#include <p18F458_init.h> #define NUMBER_OF_LEDS 8 static unsigned char s_count = 0; void rb_handler (void); #pragma code rb_interrupt = 0x8 void rb_int (void) { _asm goto rb_handler _endasm } #pragma code #pragma interrupt rb_handler void rb_handler (void){ static unsigned char led_display = 0; INTCONbits.RBIF = 0; s_count = s_count % (NUMBER_OF_LEDS + 1); led_display = (1 << s_count++) - 1; PORTD = led_display; Delay10KTCYx(250); } void main (void) { TRISD = 0; PORTD = 0; INTCONbits.GIE = 1; INTCONbits.INT0IE = 1; INTCON2bits.RBIP = 1; while (1) { } } Leider funktioniert es nicht so recht. Kann mir jemand sagen was daran falsch ist???? Danke Matthias
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.