PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer Interrupt mit C8051F020



Nefrus
15.08.2007, 20:07
Guten Tag allerseits! : )

Folgendes Problem plagt mich. Ich möchte einen simplen Timer benützen, jedoch springt er einfach nicht in meine Interruptroutine. :( Mit C befinde ich mich noch einwenig auf Neuland - bin deshalb auf Hilfe angewiesen. Könnt ihr einen Fehler erkennen? Vielen Dank im Voraus : )

Hier der Code:


#include <C8051F020.H>

//+------------------------------------------------------------------------------------------+
//|PROTOTYPING |
//+------------------------------------------------------------------------------------------+

void timer0_ISR (void);

//+------------------------------------------------------------------------------------------+
//|Timer Initialisieren |
//+------------------------------------------------------------------------------------------+

void initTimer(void){


TMOD = (TMOD & 0xF0) | 0x01; /* Set T/C0 Mode */
TH0 = 0x01; /* T0 auf 50ms eingestellt */
TL0 = 0x01;
ET0 = 0x01; /* Enable Timer 0 Interrupts */

EA = 0x01; /* Global Interrupt Enable */

WDTCN=0xDE; /*watchdog deaktivieren*/
WDTCN=0xAD;
}


//+------------------------------------------------------------------------------------------+
//|MAIN |
//+------------------------------------------------------------------------------------------+

void main (void)
{
TR0 = 0x01; // Start Timer 1

while(1)
{
}
}

//+------------------------------------------------------------------------------------------+
//|Timer 0 Interrupt |
//+------------------------------------------------------------------------------------------+

void timer0_ISR (void) interrupt 1
{
int inter0;
inter0++;
P2 = inter0;
DelayNmSec(400);
}

beppo
15.08.2007, 20:58
Schreib doch mal beim Prototypen

"void timer0_ISR (void) interrupt 1;"

ich denke, das ist der Fehler...

mfg beppo