这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教:我用外部中断3配合定时器3进行脉冲计数?

共1条 1/1 1 跳转至

请教:我用外部中断3配合定时器3进行脉冲计数?

菜鸟
2004-10-09 06:34:55     打赏
请教:我用外部中断3配合定时器3进行脉冲计数,外部中断3做脉冲输入引脚。TimerCnt计数定时器中断,IntCnt为外部中断3的计数, 但是上面程序有问题,请高手帮我修改一下,谢谢各位! static U32 TimerCnt=0; static U32 IntCnt=0; static int LedStatus=0; volatile int TimerCnt3; int flag=-1; void __irq Timer3Done(void) { rI_ISPC=BIT_TIMER3; TimerCnt3++; } void __irq EINT3_Tick(void) { IntCnt++; flag=-flag; if(flag==1) { rI_ISPC=BIT_EINT3; rTCFG0=0x00000100; rTCFG1=0x00002000; rTCNTB3=10000; rTCMPB3=5000; rTCON=0x0020000; //update T3 rTCON=0x0090000; //T3=auto reload, pISR_TIMER3=(unsigned)Timer3Done; } else { rTCON=0x0 ; TimerCnt3=0; } } void Timer_Init(void) { int save_E,save_PE; save_E=rPCONE; save_PE=rPUPE; rPCONE=0xaaa8; //Tout0/1/2/3/4, RxD0, TxD0 rPUPE |=0xf8; rEXTINT=0x66666666; //rEXTINT=0x22222222; rINTCON=0x5; //Non-vectored,IRQ enable,FIQ disable rINTMOD=0x0; //All=IRQ mode rPCONG=0xffff; //EINT7~0 rPUPG=0x0; //pull up enable pISR_EINT3=(unsigned)EINT3_Tick; rINTMSK=BIT_GLOBAL; rINTMSK=~(BIT_GLOBAL|BIT_EINT3|BIT_TIMER3);//start timer INT Uart_Printf("Timer_­;rTCNTO3=%d\n",rTCNTO3); } void Main(void) { rSYSCFG=CACHECFG; // Using 8KB Cache// Port_Init(); Uart_Init(0,57600); Delay(10); Uart_Select(0); //Select UART0 Led_Display(0x07); Timer_Init(); while(1); } 请教:我用外部中断3配合定时器3进行脉冲计数,外部中断3做脉冲输入引脚。 但是上面程序有问题,请高手帮我修改一下,谢谢各位!



关键词: 请教     我用     外部     中断     配合     定时器     进行     脉冲         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]