导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→帮看看我的脉宽调制程序!!!![光明二进制]

 *第41712篇: 帮看看我的脉宽调制程序!!!!

  
楼 主:光明二进制 2006年6月29日03:46
 帮看看我的脉宽调制程序!!!!
我的程序如下,但是输出的频率是400多Hz的。我试着按注释那里改了下程序,但是发现当a=128时,占空比远远大于1/2,如果不加那两句占空比就是1/2。
不懂为什么,高手帮看看。

#include   <AT89x051.H>  
unsigned int a=128,b,c=0,d=0;
void main(void)
{
 while(1)
 {
  P3_0=1;
  for(i=0;i  <10;i++)            //后来加上的,如果没有这两句能正常输出400多HZ的方波
  for(b=d;b  <256-a;b++);
  P3_0=0;
  for(i=0;i  <10;i++)            //后来加上的,如果没有这两句能正常输出400多HZ的方波
  for(b=b;b  <256-d;b++);
 }
}

我需要的输出频率要在100Hz以下,不懂应该怎么办了。。。

  
2楼:bzxc9 2006年6月30日08:35
 干吗不用定时中断呢?
定时中断可以,定时0.1MS,分100份,要什么比就有什么比
  
3楼:zhangyufei_123 2006年7月7日10:34
 按照你的要求用延时比用循环好
void delay(unsigned int times)
{}
main()
{
while(1)
 {
  P3_0=1;
  delay(i);
  P3_0=0;
  delay(j)
 }
}
延时时间自己找   这样可能会好点

>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:拜求Mentor isd2004!

[下一篇主题]:有薪开发,进来看看