打印
[技术问答]

SC92F8462B的PWM周期计算问题?

[复制链接]
1109|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hayden0|  楼主 | 2019-9-21 18:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
想产生38khz方波,也就是周期为26us。
程序如下:
/*****************************************************
*函数名称:void PWM_Init(void)
*函数功能:PWM初始化
*入口参数:void
*出口参数:void
*****************************************************/
void PWM_Init(void)
{
        P2CON|=(1<<7);//PWM5-P27
        
        PWMCFG &= ~(1<<5);        //PWM5输出不反向,时钟源Fosc
        PWMCFG &= ~(1<<6);
        PWMCFG &= ~(1<<7);
        
        PWMPRD  = 159;                //PWM周期=(159+1)*(1/Fpwm);
        
         PWMDTYB = 0X00;     //PWM3/4/5周期与占空比的低2位设置  
        PWMDTY5 = 35;                //PWM0的Duty = 35/160 =7/32
        
        PWMCON |= 0x20;                //PWM5输出到P27
        PWMCON |= 0x80;     //开启PWM
  IE1 |= 0x02; //PWM中断使能
  EA = 1;
}


时钟源为FOSC不分频,也就是默认为12Mhz
但是上面源码要按6MHZ算才能输出周期为26us的方波,不知道为什么?

使用特权

评论回复

相关帖子

沙发
触觉的爱| | 2019-9-22 20:06 | 只看该作者
用的内部时钟?

使用特权

评论回复
板凳
hayden0|  楼主 | 2019-9-23 08:19 | 只看该作者

没晶振,用的HRC,但是PWM一直不对!

使用特权

评论回复
地板
wh6ic| | 2019-9-23 10:09 | 只看该作者
你的计数 160 / 6M 正好等于 26uS 嘛,12M想要26uS,你的计数要用 320

使用特权

评论回复
5
hayden0|  楼主 | 2019-9-23 11:51 | 只看该作者
wh6ic 发表于 2019-9-23 10:09
你的计数 160 / 6M 正好等于 26uS 嘛,12M想要26uS,你的计数要用 320

对呀,正好!所以我就奇怪,为什么莫名其妙的变成6Mhz了,但是系统是默认的24/2=12M呀?
高明不明白!

使用特权

评论回复
6
赛元MCU3| | 2019-9-24 09:22 | 只看该作者
主频是24M,如果程序中没有分频,就看option选项中有没有分频设置

使用特权

评论回复
7
hayden0|  楼主 | 2019-9-24 11:55 | 只看该作者
本帖最后由 hayden0 于 2019-9-24 11:57 编辑
赛元MCU3 发表于 2019-9-24 09:22
主频是24M,如果程序中没有分频,就看option选项中有没有分频设置

我知道主频是24M!option选项里是默认的二分频,而且只有2分频,4分频,12分频。我没动,使用的是默认的2分频。所以是12M。

使用特权

评论回复
8
hayden0|  楼主 | 2019-9-29 14:37 | 只看该作者
有谁遇到过这问题?

使用特权

评论回复
9
奇立电源| | 2019-11-11 14:19 | 只看该作者
这个PWM有点恶心,更高8+低2位,应该是这里问题,一般MCU都是高2+低8,
比如你要设159的分辨率就是

PWMDTY0=159>>2;
PWMDTYA=159&0x11;

使用特权

评论回复
10
hayden0|  楼主 | 2019-11-12 10:17 | 只看该作者
奇立电源 发表于 2019-11-11 14:19
这个PWM有点恶心,更高8+低2位,应该是这里问题,一般MCU都是高2+低8,
比如你要设159的分辨率就是

0x11是什么?

使用特权

评论回复
11
knk| | 2019-11-12 19:04 | 只看该作者

他是要取159的低2位

使用特权

评论回复
12
knk| | 2019-11-12 19:04 | 只看该作者
奇立电源 发表于 2019-11-11 14:19
这个PWM有点恶心,更高8+低2位,应该是这里问题,一般MCU都是高2+低8,
比如你要设159的分辨率就是

实际应用要先设置低2位,再设置高8位。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

279

帖子

3

粉丝