找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1543|回复: 4
打印 上一主题 下一主题
收起左侧

关于单片机D/A数据转换的程序疑问

[复制链接]
跳转到指定楼层
楼主
ID:385004 发表于 2018-8-18 18:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
里面count>100这个条件的运用是干嘛的?不能直接开始占空比的+吗?

void main()
{
Timer1Init();
while(1)
{
  if(count>100)      
  {  
   count=0;
   if(DIR==1)        
   {
     value++;
   }   
   if(DIR==0)
   {
     value--;
   }
   
  }
  if(value==1000)
  {
    DIR=0;
  }
  if(value==0)
  {
    DIR=1;
  }
   
  if(timer1>1000)  //PWM?????1000*1us
  {
   timer1=0;
  }
  if(timer1 <value)
  {
   PWM=1;
  }
  else
  {
   PWM=0;
  }  
}  
}

void Time1(void) interrupt 3   
{
TH1 = 0xFF;
TL1 = 0xff;   //1us
timer1++;
    count++;

}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2018-8-19 08:02 | 只看该作者
这个变量count可能(没有程序全部,只能靠猜)是PWM的周期,为什么是大于100而不是等于100呢?那是因为定时器中断的缘故。
你想嘛:当count正好100时,你的程序是不是能正好执行到这条语句呢?如果不是“正好”,那么,就永远也不会有这个判断了,所以是大于。
回复

使用道具 举报

板凳
ID:94031 发表于 2018-8-19 11:48 | 只看该作者
“count>100这个条件的运用”是用来延时的。
回复

使用道具 举报

地板
ID:385004 发表于 2018-8-19 14:03 | 只看该作者
HC6800-ES-V2.0 发表于 2018-8-19 08:02
这个变量count可能(没有程序全部,只能靠猜)是PWM的周期,为什么是大于100而不是等于100呢?那是因为定时器 ...

由value++到1000可以知道周期是1ms,它只加到100。
回复

使用道具 举报

5#
ID:385004 发表于 2018-8-19 14:04 | 只看该作者
xuyaqi 发表于 2018-8-19 11:48
“count>100这个条件的运用”是用来延时的。

我知道是用来延迟的,但它延迟的目的是什么?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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