Gast
#510143
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