Ich habe folgendes Prolem: Ich möchte sowohl mit Timer X eine Interrupt Routine definieren als auch mit dem INT0-Pin einen Interrupt auslösen.
Ich hatte für beide Interrupts ein Programm geschrieben und diese laufen wunderbar... nur wenn ich sie wie folgend zusammenfüge funktioniert das ganze nur noch, wenn ich einen der beiden Teile auskommentiere:
#include "sfr_r813.h"
#pragma interrupt Timer_X_int;
void int0( void );
#pragma interrupt int0
void int0( void ) // interrupt handling function
{
p1_2=1;
}
void main( void )
{
int0ic = 0x00; // interrupt enabled
int0en = 1; // INT0 interrupt enabled
int0pl = 1; // INT0 input polarity: both edges selected
int0f = 0x03; // INT0 input fiter: sampling with f32
int0ic = 0x01; // interrupt priority level setting
asm( " fset I "); // interrupt disabled
asm( "\tFSETI");// Enable interrupt
txmr = 0x00;// Timer mode for Timer X
prex = 0;// Set Prescaler X register to 1
tx = 0;// Set Timer X register to 1
txck0= 0;// Timer Count source = f32
txck1= 1;
txic= 0x07;// Timer interrupt priority level = 7
txs= 1;// Timer X count start flag -> start
pd1 = 0xFF;
p1 = 0x00;
while (1);
}
void Timer_X_int(void)
{
if (p1_4 == 1)
p1_4 = 0;
else
p1_4 = 1;
}
Danke schon mal für die Hilfe
Gruss
