Discuz! Board

标题: 关于TIM4的定时器求助 [打印本页]

作者: Wind    时间: 2014-5-7 11:57
标题: 关于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
函数名怎么取都行,只有在启动文件里声明就行
作者: Wind    时间: 2014-5-7 22:47
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
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
admin 发表于 2014-5-9 11:37
出了什么问题?建议你可以先看看这个文档:http://qfv8.com/forum.php?mod=viewthread&tid=747&extra=pag ...

问题写在我的注释那儿。好的,我先看看。




欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3