标题: 关于单片机D/A数据转换的程序疑问 [打印本页]

作者: lwf1    时间: 2018-8-18 18:59
标题: 关于单片机D/A数据转换的程序疑问
里面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++;

}



作者: HC6800-ES-V2.0    时间: 2018-8-19 08:02
这个变量count可能(没有程序全部,只能靠猜)是PWM的周期,为什么是大于100而不是等于100呢?那是因为定时器中断的缘故。
你想嘛:当count正好100时,你的程序是不是能正好执行到这条语句呢?如果不是“正好”,那么,就永远也不会有这个判断了,所以是大于。
作者: xuyaqi    时间: 2018-8-19 11:48
“count>100这个条件的运用”是用来延时的。
作者: lwf1    时间: 2018-8-19 14:03
HC6800-ES-V2.0 发表于 2018-8-19 08:02
这个变量count可能(没有程序全部,只能靠猜)是PWM的周期,为什么是大于100而不是等于100呢?那是因为定时器 ...

由value++到1000可以知道周期是1ms,它只加到100。
作者: lwf1    时间: 2018-8-19 14:04
xuyaqi 发表于 2018-8-19 11:48
“count>100这个条件的运用”是用来延时的。

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1