[疑难问答] megawin单片机PCA产生PWM波幅值的问题

[复制链接]
2366|7
 楼主| 烟水晴岚55 发表于 2013-6-27 16:09 | 显示全部楼层 |阅读模式
利用PCA产生的PWM波幅值不是5V而是在1.6V到1.7V之间,这不合逻辑啊,调整占空比为100%也不能达到5V。求高人指教!
程序如下:
#include<reg52.h>
#include<intrins.h>
#define FOSC 1843200L
#define unsigned char BYTE
#define unsigned int WORD
sfr CCON=0XD8;
sbit CCF0=CCON^0;
sbit CCF1=CCON^1;
sbit CF=CCON^7;
sbit CR=CCON^6;
sfr CMOD=0XD9;
sfr CL=0XE9;
sfr CH=0XF9;
sfr CCAPM0=0XDA;
sfr CCAP0L=0XEA;
sfr CCAP0H=0XFA;
sfr CCAPM1=0XDB;
sfr CCAP1L=0XEB;
sfr CCAP1H=0XFB;
sfr PCAPWM0=0XF2;
sfr PCAPWM1=0XF3;
void main()
{
    CCON=0;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CCON=0;
        CL=0;
        CH=0;
        CMOD=0X00;
        CCAP0H=0X00;
        CCAP0L=0X00;
        PCAPWM0=0X00;
        CCAPM0=0X42;
        CCAP1H=0X40;
        CCAP1L=0X40;
        PCAPWM1=0X00;
        CCAPM1=0X42;
           CR=1;
        while(1);
       


}
MG_FAE 发表于 2013-6-28 08:50 | 显示全部楼层
请告知是哪个芯片型号,再者如果芯片5V工作,不管如何输出不到5V的话,有几个可能性,
1. 输出设置为Open-drain并且没有上拉电阻。
2. 确认是否空载下量测,有可能是负载过大造成。
3. 确认量测到正确的管脚输出。
4. 换个芯片测试看看。
dengzhaowen 发表于 2013-6-28 11:53 | 显示全部楼层
可能是你的IO口工作模式没选的问题,用PWM要让相应的PIN工作在推挽模式。
 楼主| 烟水晴岚55 发表于 2013-6-28 16:16 | 显示全部楼层
MG_FAE 发表于 2013-6-28 08:50
请告知是哪个芯片型号,再者如果芯片5V工作,不管如何输出不到5V的话,有几个可能性,
1. 输出设置为Open-d ...

片子是MEGAWIN的MPC83G516。能产生PWM波,只是输出幅值不对。顺便问下什么叫Open-drain?PCA产生的PWM只在固定的几个引脚输出
mg_sz 发表于 2013-7-2 08:59 | 显示全部楼层
Open-drain===开路输出,PCA对应的6通道为:P12---P17.
请楼主,顺便检查一下外围,有没有可能拉低.
mg_sz 发表于 2013-7-2 09:00 | 显示全部楼层
Open-drain===开路输出,PCA对应的6通道为:P12---P17.
请楼主,顺便检查一下外围,有没有可能拉低.
mg_sz 发表于 2013-7-2 09:01 | 显示全部楼层
Open-drain===开路输出,PCA对应的6通道为P12---P17.
请楼主,顺便检查一下外围,有没有可能拉低.
mg_sz 发表于 2013-7-2 09:07 | 显示全部楼层
范例是正常的程序,供参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部