智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 957|回复: 2
打印 上一主题 下一主题

大哥们求帮助,新手又不懂了

[复制链接]

9

主题

51

帖子

0

精华

高级会员

Rank: 4

积分
706
QQ
威望
357
贡献
161
兑换币
224
注册时间
2013-6-8
在线时间
94 小时
跳转到指定楼层
1#
发表于 2013-8-27 08:26:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在火哥的那个低功耗定时器的历程中,自己写遇到了几个小问题不太懂,还望大哥们讲解一下
volatile u32 LPT_INT_count;  //这里的这个count,不代表是主函数的那个,如果只在这里写一个那么主函数中的将没有定义,还有个问题就是这里定义其他变量为什么不行?只有定义这个变量才可以。为什么???不懂啊???

我定义成其他变量,主函数中显示的是主函数中的变量没有定义,只能定义成这个才行,为什么啊?

第二个问题
//这里的先清中断标志位,和后清产生的结果为什么为不一样???
  lptmr_flag_clean(); //清中断标志相当于LPTMR0_CSR|=LPTMR_CSR_TCF_MASK
   //LPTMR0_CSR|=LPTMR_CSR_TCF_MASK;    //清空中断标志
  LPT_INT_count++;  //这里实质就是在脉冲计算


我先清中断再++。和++再清中断我觉得产生的结果是一样的啊,但是主函数中
while(1)
    {
     if(LPT_INT_count>0)
      {
        printf("产生的脉冲计数值为%d\n",LPT_INT_count*100); //串口发送
        // lptmr_counter_clean();  //清空计算器的值
        LPT_INT_count=0;            //清零
       // LPT_INT_count=0;
      }
      
    }

先清中断是100,先++是200,我就不懂了,要是讲这个串口发送函数放在lptmr中断中,不管是先清中断还是后清都是100

困扰了我好久额这个问题

9

主题

51

帖子

0

精华

高级会员

Rank: 4

积分
706
QQ
威望
357
贡献
161
兑换币
224
注册时间
2013-6-8
在线时间
94 小时
2#
 楼主| 发表于 2013-8-27 08:27:49 | 只看该作者
自顶
回复 支持 反对

使用道具 举报

9

主题

51

帖子

0

精华

高级会员

Rank: 4

积分
706
QQ
威望
357
贡献
161
兑换币
224
注册时间
2013-6-8
在线时间
94 小时
3#
 楼主| 发表于 2013-8-27 12:40:23 | 只看该作者
怎么没人啊?
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-29 18:59 , Processed in 0.085792 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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