Nefrus
15.08.2007, 21: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);
}
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);
}