MPLAP C18 Interrupt

Gast #510143
Lesenswert?
• ▲
▼
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren