各位大侠:
请帮帮忙。
我在定时中断中遇到一个问题,变量 P_Timer,在定时中断中,运行正常,每执行一次定时中断,则 P_Timer 加1。
问题是我在主程序中需要调用这个变量P_Timer, 可在主程序中这个变量一直为0, 死活不动。
我用的芯片是MC9S08AW32。
下面是我的程序:
1、main.c
#define main #include <hidef.h> /* for EnableInterrupts macro */ #include "derivative.h" /* include peripheral declarations */
#include "TIMERI-8-14.H"
#undef main
static unsigned char p_slot; void MCU_init(void) /* Device initialization function declaration */ { ICGC2 = 0X00; ICGC1 = 0X00;
} void main(void) { MCU_init(); TPM1SC=0X31; TPM1MODH=0X00; TPM1MODL=0X99; TPM1SC=0X71; InitTimerI(); P_Timer=0; EnableInterrupts; /* enable interrupts */
while(1) { if(P_Timer >= 1) { p_slot++; if (p_slot >= 5) { p_slot = 0; } } } }
2、TIMERI-8-14.C
#define timeri #include "derivative.h" #include "timeri-8-14.h"
#undef timeri void InitTimerI(void) { P_Timer = 0; }
void interrupt TIME1(void) {  _Timer++; }
3、TIMERI-8-14.h
#ifdef EXT #undef EXT #endif#ifdef LOCAL_GLOBAL #undef LOCAL_GLOBAL #endif#ifdef timeri #define LOCAL_GLOBAL #else #define EXT extern #endif #ifdef LOCAL_GLOBAL #endif #undef LOCAL_GLOBAL
EXT unsigned char P_Timer;
void InitTimerI(void);
有劳各位了。
[此贴子已经被作者于2006-8-14 14:05:25编辑过] |