注册 登录
查看: 1263|回复: 13

[K60] 为什么调试时程序停在while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK))里

[复制链接]
发表于 2014-3-31 14:32:43 | 显示全部楼层 |阅读模式
为什么调试时程序停在while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK));里啊,求大神指教
回复

使用道具 举报

发表于 2014-3-31 16:58:09 | 显示全部楼层
你用的是滴答定时器做延时?
要不改成 PIT3 作为延时试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-31 20:20:40 | 显示全部楼层
栾端静 发表于 2014-3-31 16:58
你用的是滴答定时器做延时?
要不改成 PIT3 作为延时试试

强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2015-3-1 17:05:43 | 显示全部楼层
请问 你的这个问题解决了没?我的也是这个问题 换成PIT3 作为延时也不行呢。还是我不会换
回复 支持 反对

使用道具 举报

发表于 2015-3-1 17:46:18 | 显示全部楼层
924722558 发表于 2015-3-1 17:05
请问 你的这个问题解决了没?我的也是这个问题 换成PIT3 作为延时也不行呢。还是我不会换

可能是反复进入延时函数。看串口输出
回复 支持 反对

使用道具 举报

发表于 2015-3-1 17:48:27 | 显示全部楼层
7swkr4795z 发表于 2015-3-1 17:46
可能是反复进入延时函数。看串口输出

串口输出就是 硬件上访了。我换个其他延时都是这样 你的呢?
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-3-28 17:07:12 | 显示全部楼层
求问怎么解决,我就用了PIT1来延时中断都会死在这句话里面,现在一直没办法
回复 支持 反对

使用道具 举报

发表于 2015-10-3 19:52:25 | 显示全部楼层
山外哥,帮帮忙,这个程序是哪里错哩,怎么也是出现这个问题
void PORTC_IRQHandler(void);   
uint32 timevar;
uint16  distance=0;
void  main(void)
{
    // uint16  distance=0;
      Site_t site;
      LCD_init();            //初始化
      site.x = 10;
    site.y = 50;
    LCD_str(site, "Distance", BLUE, RED);

    site.y = 70;
    LCD_str(site, "is:", BLUE, RED);
   
      port_init(PTC15, ALT1 |IRQ_EITHER| PULLUP );
      set_vector_handler(PORTC_VECTORn,PORTC_IRQHandler);
      enable_irq (PORTC_IRQn);
     
      while(1)
    {
        site.y = 90;  
        LCD_num_C(site, distance, BLUE, RED);
     }   
   
}
void PORTC_IRQHandler(void)
{
    uint8  n = 0;    //引脚号
    n = 15;
    if(PORTC_ISFR & (1<< n))           //PTD7 触发中断
      {
        PORTC_ISFR  = (1 << n);       //写1清中断标志位
        if(gpio_get(PTC15)==1)
          {
             lptmr_time_start_ms();
           }
        else
        {
          timevar = lptmr_time_get_ms();
           lptmr_time_close();
           distance=timevar*340/1000;
         }
      }
   
}
回复 支持 反对

使用道具 举报

发表于 2015-10-3 19:57:07 | 显示全部楼层
insurance 发表于 2015-10-3 19:52
山外哥,帮帮忙,这个程序是哪里错哩,怎么也是出现这个问题
void PORTC_IRQHandler(void);   
uint32 ti ...

需要自己学会调试。可以看我们的视频,学调试的能力。

回复 支持 反对

使用道具 举报

发表于 2015-10-3 20:06:29 | 显示全部楼层
好的,谢谢山外哥,我先自己看看
回复 支持 反对

使用道具 举报

发表于 2015-10-3 21:07:13 | 显示全部楼层
山外哥,看了你的视频还是不明白,为什么使能中断后就跑飞了呢
回复 支持 反对

使用道具 举报

发表于 2015-10-3 21:12:02 | 显示全部楼层
insurance 发表于 2015-10-3 21:07
山外哥,看了你的视频还是不明白,为什么使能中断后就跑飞了呢

这么说吧,出问题,只有去找,去一步步分析,才可能知道答案。
仅仅从一堆代码里,不去调试,不去跟踪,我也不会知道哪里出问题的。
回复 支持 反对

使用道具 举报

发表于 2015-10-3 21:16:14 | 显示全部楼层
insurance 发表于 2015-10-3 21:07
山外哥,看了你的视频还是不明白,为什么使能中断后就跑飞了呢

视频里有讲调用栈,你根据调用栈,往回推,检查哪里出问题。
回复 支持 反对

使用道具 举报

发表于 2016-8-25 20:34:51 | 显示全部楼层
在调试PWM的时候把占空比调过100后出现楼主的问题。是不是这个看下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部