123下一页
返回列表 发新帖我要提问本帖赏金: 2.33元(功能说明)

定时中断死循环,求助?

[复制链接]
6227|44
 楼主| suolong 发表于 2017-6-15 10:12 | 显示全部楼层 |阅读模式
我的程序都是对的,可就是不中断返回,无语。
 楼主| suolong 发表于 2017-6-15 10:12 | 显示全部楼层
这是定时中断程序。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| suolong 发表于 2017-6-15 10:14 | 显示全部楼层
初始化
void TIMER0_INIT(void)
{
        SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);//使能TIMER0
        //TimerConfigure(TIMER0_BASE, TIMER_CFG_ONE_SHOT);//单次计数模式
        //TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC_UP);//周期性计数模式,递增计数
        //TimerConfigure(TIMER0_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_PERIODIC);
        TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);//周期性计数模式
        TimerLoadSet(TIMER0_BASE, TIMER_A,SysCtlClockGet() /12800);
        //TimerADCEventSet(TIMER0_BASE,TIMER_ADC_TIMEOUT_A);//超时触发采样设置
        TimerControlTrigger(TIMER0_BASE,TIMER_A,true);
        //TimerADCEventGet(TIMER0_BASE);//获取是否超时触发ADC
        IntEnable(INT_TIMER0A);//TIMEOUT标志位触发中断
        IntPrioritySet(INT_TIMER0A,1);//优先级1
        TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); //使能TIMER0A中断
        IntMasterEnable();
        TimerEnable(TIMER0_BASE, TIMER_A);//TIMER0A开始计数,当计数值等于TimerLoadSet,触发中断
}
 楼主| suolong 发表于 2017-6-15 10:15 | 显示全部楼层
调试一下就死了,求助大神@xyz549040622 @dirtwillfly

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
dirtwillfly 发表于 2017-6-15 11:52 | 显示全部楼层
mcu型号是哪个?
 楼主| suolong 发表于 2017-6-15 12:36 | 显示全部楼层

TM4C123的,这个和MUC型号还有关系?
ckc 发表于 2017-6-15 12:38 | 显示全部楼层
timeintclear是做什么的?
中断函数里调用别的函数要慎重
 楼主| suolong 发表于 2017-6-15 12:46 | 显示全部楼层
ckc 发表于 2017-6-15 12:38
timeintclear是做什么的?
中断函数里调用别的函数要慎重

没有调用啊,中断源清除。如果中断中调用函数,会有什么影响?
xyz549040622 发表于 2017-6-15 14:55 | 显示全部楼层
1.你的中断不反回事什么意思
2.中断在启动文件中申明了没有
3.你的中断函数进去了没
4.你的这个timer0count太大了吧,要达到真是需要一定时间的。
 楼主| suolong 发表于 2017-6-15 16:44 | 显示全部楼层
xyz549040622 发表于 2017-6-15 14:55
1.你的中断不反回事什么意思
2.中断在启动文件中申明了没有
3.你的中断函数进去了没

大神就是,不一样,中断函数应该是进去了,启动文件也申明了,我最后把主程序中的delay程序,说是丢失了,一直死循环,我把那部分去掉了,就好了。
 楼主| suolong 发表于 2017-6-15 17:01 | 显示全部楼层
1.  //设置系统时钟为40MHz(400/2.5/4=40)
        SysCtlClockSet(SYSCTL_SYSDIV_1 |SYSCTL_USE_PLL|SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);
我想问一下,这句系统时钟设置:倍频都400MHZ,然后在分频,我这里分频系数是1,难道时钟就是400MHz,还是要除2,在除25是16MHZ;我搞不懂这个时钟是怎么设置的。
还有为什么我看SysCtlClockSet的值是这样的。十进制是7000多?SysCtlClockGet也是7740?为什么是这个值?
2.        TimerLoadSet(TIMER0_BASE, TIMER_A,SysCtlClockGet() / 12800);这个12800,也就是timer0count,这个值是怎么算的?系统时钟除12800?如果系统时钟是16MHZ,就是1秒钟计数16M/12800次?
还没毕业的实习小白,可能问题比较简单。@xyz549040622

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
dirtwillfly 发表于 2017-6-15 17:29 | 显示全部楼层
suolong 发表于 2017-6-15 12:36
TM4C123的,这个和MUC型号还有关系?

不同系列的mcu调用的库函数都是不同的,比如msp与tiva
dirtwillfly 发表于 2017-6-15 17:31 | 显示全部楼层
suolong 发表于 2017-6-15 16:44
大神就是,不一样,中断函数应该是进去了,启动文件也申明了,我最后把主程序中的delay程序,说是丢失了 ...

能否提供下完整的程序?
 楼主| suolong 发表于 2017-6-15 17:43 | 显示全部楼层
dirtwillfly 发表于 2017-6-15 17:31
能否提供下完整的程序?

灰哥,刚加了你的2群,问个问题都没人回,好尴尬。刚刚那个问题解决了,在搞别的问题了。用定时器触发采样,论坛里有人写过一帖子,不知道为什么我照着试没用。很困惑。
xyz549040622 发表于 2017-6-15 21:30 | 显示全部楼层
suolong 发表于 2017-6-15 17:43
灰哥,刚加了你的2群,问个问题都没人回,好尴尬。刚刚那个问题解决了,在搞别的问题了。用定时器触发采 ...

 楼主| suolong 发表于 2017-6-15 21:33 | 显示全部楼层
 楼主| suolong 发表于 2017-6-15 21:36 | 显示全部楼层
不知道为什么,我现在死活进不了ADC中断,很无语啊。
1.启动中申明了;
2.初始化了;
3.触发了;@dirtwillfly @xyz549040622

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
quickman 发表于 2017-6-15 22:36 | 显示全部楼层
中断不能执行吗?
jstgotodo 发表于 2017-6-15 22:36 | 显示全部楼层
suolong 发表于 2017-6-15 10:12
这是定时中断程序。

后面的函数执行了吗
iamaiqiyi 发表于 2017-6-15 22:37 | 显示全部楼层
中断不能够退出吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

70

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部