Wind 发表于 2014-5-7 11:57:41

关于TIM4的定时器求助

下面是我的代码,想实现1s定时,不知道为何不行


int isTimer=1;

void
Timer0_ISR(void)   //函数名请问有什么要求么?我看有的教程用的是Timer0_ISR,青风的教程用的是Timer0IntHandler,我试了两种都不行
{
                isTime = 1;
                HWREGBITW(&g_ulFlags, 0) ^= 1;
    TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
               
}


int main(void){
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                     SYSCTL_XTAL_16MHZ);

IntMasterEnable();
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);

while(1){
    if(isTime){
       TimerConfigure(TIMER0_BASE, TIMER_CFG_ONE_SHOT);
        TimerLoadSet(TIMER0_BASE, TIMER_A, 4000000UL);
        IntEnable(INT_TIMER0A);
        TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
        TimerEnable(TIMER0_BASE, TIMER_A);
   }
}
}



admin 发表于 2014-5-7 16:55:45

函数名怎么取都行,只有在启动文件里声明就行

Wind 发表于 2014-5-7 22:47:31

admin 发表于 2014-5-7 16:55
函数名怎么取都行,只有在启动文件里声明就行

谢谢!已经解决了!
现在关于定时还有点问题:
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                     SYSCTL_XTAL_16MHZ);//这句话的意思是不是设置系统的频率为4MHz呢?
TimerLoadSet(TIMER0_BASE, TIMER_A, 4000000UL);//那这句话不应该是获取1s的间隔时间么?

admin 发表于 2014-5-9 11:37:20

Wind 发表于 2014-5-7 22:47
谢谢!已经解决了!
现在关于定时还有点问题:
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SY ...
出了什么问题?建议你可以先看看这个文档:http://qfv8.com/forum.php?mod=viewthread&tid=747&extra=page%3D1

Wind 发表于 2014-5-9 12:57:02

admin 发表于 2014-5-9 11:37
出了什么问题?建议你可以先看看这个文档:http://qfv8.com/forum.php?mod=viewthread&tid=747&extra=pag ...

问题写在我的注释那儿。好的,我先看看。
页: [1]
查看完整版本: 关于TIM4的定时器求助