8462|11

9

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

求高手指教啊。我做spwm波形,程序不知道哪里出错了????? [复制链接]

求各位大侠帮我看看需要怎么改,spwm波形就是出不来,用示波器观察只看到了我贴在下面的图片的那种波形

急啊,求各位大侠帮帮忙了。调了好久不知道怎么改了。。。。。。。。

#include<pic.h>
#define uchar unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
unsigned char num;
unsigned char key_num;
unsigned char mode;
bit F;
const uchar sin_[]={0,12,24,37,49,61,72,84,95,106,117,128,
138,148,158,167,176,184,192,200,207,214,220,225,230,234,238,242,244,246,
248,249,249,249,248,246,244,242,238,234,230,225,220,214,207,200,192,184,
176,167,158,148,138,128,117,106,95,84,72,61,49,37,24,12};
                       
//void delay(uint x);
void io_init();
void pwm_init();
void main()
{
 mode=0;
 F=1;
 io_init();
  pwm_init();
 
 while(1)      
 {
  if(F==1)
  {
   if(TMR2>=CCPR1L)
    {
     RC1=0;
   
    }
  }
    else if(F==0)
  { 
   if(TMR2>=CCPR2L)
       {
     RC2=0;
   
    }
  }                 
 } 
}
/*void delay(uint x)
{
 uint a,b;
 for(a=x;a>0;a--)
  for(b=110;b>0;b--);
}*/

void io_init()
{
     
 TRISD=0;
 PORTD=0XFF;
    TRISC=0XF9;//设置ccp1引脚为输出方式
 RC1=1;
 RC2=0;
}
void pwm_init()
{  
 PR2=0x4B;  //20MHZ的用f9
    T2CON=0X15;// 打开定时器2设置分频1:1后分频为1:3
    CCP1CON=0X3C;//设置为pwm模式
 CCP2CON=0x3c;
 CCPR1L=0X00;//改变ccpr1l和ccp1con(bit4--bit5)的比值就可以改变占空比
 CCPR2L=0X00;
 
    INTCON=0X00;//禁止总中断和外围中断
    
}
void interrupt time0()
{
 TMR2IF=0;
 
 if(mode==63)
    {
  F=!F;
  mode=0;
  }
 mode++;
 if(F==1)
 { 
     RC1=1;
  RC2=0;
  CCPR1L=sin_[mode];
 }
    if(F==0)
 { 
  RC1=0;
  RC2=1;
  CCPR2L=sin_[mode]; 
 } 
 
}


 

EW3{$TVFGTAXA5AGSXD5`PY.jpg (11.41 KB, 下载次数: 4)

EW3{$TVFGTAXA5AGSXD5`PY.jpg
此帖出自单片机论坛

最新回复

什么芯片,没有看明白,我再看看。  详情 回复 发表于 2012-12-29 12:51
点赞 关注
 

回复
举报

9

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
求救啊!!!各位大侠希望给予指导啊!!!!急啊!!!!!
此帖出自单片机论坛
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

板凳
 
我也不知道,没弄过
不知道你对波形产生的原理清楚没有。如果弄清楚了自己慢慢的分析应该会有结果的。
建议先一步一步的来,先实现控制PWM的占空比,实现了之后再尝试按规律实现占空比可调!
此帖出自单片机论坛

点评

pwm的我写过了,我实现了用按键改变占空比的功能。现在我要用查表来实现spwm  详情 回复 发表于 2012-7-20 21:02
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 jishuaihu 的帖子

pwm的我写过了,我实现了用按键改变占空比的功能。现在我要用查表来实现spwm
此帖出自单片机论坛

点评

亲,你那个表是怎么写的啊???  详情 回复 发表于 2012-7-31 15:59
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

5
 
那先弄个简单 表。会不会更新的时序不合适呢?
此帖出自单片机论坛

点评

恩恩,好像是时间太快了,单片机跟不上  详情 回复 发表于 2012-7-24 13:12
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 5楼 jishuaihu 的帖子

恩恩,好像是时间太快了,单片机跟不上
此帖出自单片机论坛
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

7
 
没有亲自做过,只是了解点儿理论,再细就说不出原因了
此帖出自单片机论坛
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复 4楼 a372708078 的帖子

亲,你那个表是怎么写的啊???
此帖出自单片机论坛

点评

用excel就可以了  详情 回复 发表于 2012-8-26 17:38
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

9
 
你的波形是占空比不合适  你看看怎么调 占空比
此帖出自单片机论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 8楼 枭龙迎风 的帖子

用excel就可以了
此帖出自单片机论坛
 
 
 

回复

447

帖子

30

TA的资源

五彩晶圆(初级)

11
 
在程序开头没有看到对定时器的初始化,在void interrupt time0()也没有送定时器的初值。也就是1.定时器没有启动,2. 定时器即使启动了,中断一次以后也就停止工作了。

不知道是不是这个问题,也不知道是否还有必要。
此帖出自单片机论坛
 
个人签名www.ctdisk.com/u/1283024
个人书库,持续更新中。
 
 

回复

41

帖子

2

TA的资源

一粒金砂(中级)

12
 

什么芯片,什么硬件,我没有看明白,

什么芯片,没有看明白,我再看看。
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表