BID = 169894
Leon79 Gelegenheitsposter
 
Beiträge: 77
|
hallo
ich benütze Timer 0 ,1 und externen interrupt 0
Timer 0 und externen interupt 0 funct nur der timer 1 läuft nicht weg. benütze Keil C51
stimmen die serviceroutinen deklarationen so:
//Interruptservice Routine für externen Interrupt an P3.2
void ex0isr(void) interrupt 0 using 3
{
TR0 = 0; //Timer 0 stoppen
Messung(); //
}
//_________________________________________________________
//Interruptservice Routine für Timer0 Überlauf
void isrT0 (void) interrupt 1 using 3
{
put_string_lcd("Fehler");
//Fehler = 1; //bei timerüberlauf Fehler =1
TR0 = 0;
}
//_________________________________________________________
//Interruptservice Routine für Timer1 Überlauf
void isrT1 (void) interrupt 3 using 3
{
put_string_lcd("messen");
Messimpulsinit();
}
bzw die timer initalisierung:
TMOD = TMOD & 0x00; //Timer 1 auf 0001, timer 0 modus 1 16 bit timer gate 0,
TMOD = TMOD | 0x11;
IT0 = 1; // interrupt 0 type control bit Flankengesteurt
EX0 = 1; //enable external interrupt 0
EA = 1; // disable all interrupt low aktiv!!
ET0 = 1;
//ET1 = 1; //timer überlauf
IE0 = 1; //external interrupt 0 edge flag
IT1 = 1; //enable timer 0 overflow interrupt
//TF1 = 1;
mit dem tr0 bzw tr1 auf 1 starte ich die timer
bin schon kurz vorm verzweifeln vielleicht hat jemand einen tipp für mich
DAnke
LEO
_________________
"Krieg ist Frieden", "Freiheit ist Sklaverei" und "Unwissenheit ist Stärke"
|