打印
[PIC®/AVR®/dsPIC®产品]

PIC16F887的PWM频率设置问题

[复制链接]
2199|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
求教各位大佬,PIC16F887的PWM工作频率能由外部晶振决定么?PWM周期=[(PR2+1)*4]*Tosc*预分频。这里的Tosc能由外部晶振确定么?

使用特权

评论回复
沙发
dongnanxibei| | 2019-6-14 00:06 | 只看该作者
应该是可以。我以前用这个也都是用外部晶振。

使用特权

评论回复
板凳
CoolSilicon| | 2019-6-14 08:47 | 只看该作者
Fosc就是系统时钟,
Fcy是指令周期,

所以, 这个完全取决于你系统时钟的选取, 你选外部晶振提供系统时钟, 那么......

使用特权

评论回复
地板
17854230680|  楼主 | 2019-6-14 09:03 | 只看该作者
本帖最后由 17854230680 于 2019-6-14 09:12 编辑
CoolSilicon 发表于 2019-6-14 08:47
Fosc就是系统时钟,
Fcy是指令周期,

#define _LEGACY_HEADERS
#include <pic.h>       //Head File
__CONFIG(0X2CF2);   

unsigned int x;
unsigned int k;

main(void)
{

    OSCCON=0X78;            //clock
    TRISC=0B11111011;      //RC2--output
    PORTC=0B00000000;
    CCP1CON=0x3c;   //set CCP1 as PWM mode
    PR2=9;                // set intial frequence
    x=((4*PR2)+4)/2;
    k=x&0xFFFF;
    CCPR1L =(k>>2)&0xFE;
    T2CKPS1=0;
    T2CKPS0=0;          //divde as 1:1
    TMR2ON=1;         //start TIMER2
    while(1)
    {           
               
    }
}

这是我晶振连接方式,晶振设置为了16M


使用特权

评论回复
5
17854230680|  楼主 | 2019-6-14 09:03 | 只看该作者
17854230680 发表于 2019-6-14 09:03
#define _LEGACY_HEADERS
#include        //Head File
__CONFIG(0X2CF2);   

求教大佬这个怎么该?我为什么用不了外部晶振做Fosc

使用特权

评论回复
6
17854230680|  楼主 | 2019-6-14 09:04 | 只看该作者
dongnanxibei 发表于 2019-6-14 00:06
应该是可以。我以前用这个也都是用外部晶振。

求教大佬看一下楼下我写的程序该怎么改?我为什么用不了外部晶振做Fosc

使用特权

评论回复
7
Latin_newday| | 2019-6-14 09:42 | 只看该作者
你这是用proteus仿真吧?如果是仿真的话,只与你双击MCU设置的时钟频率有关,与外部晶振设置频率无关。
当然实际线路就是使用外部晶振了,

使用特权

评论回复
8
CoolSilicon| | 2019-6-14 09:43 | 只看该作者
17854230680 发表于 2019-6-14 09:04
求教大佬看一下楼下我写的程序该怎么改?我为什么用不了外部晶振做Fosc

你研究一下, 配置字... configuration bits的看看.

使用特权

评论回复
9
17854230680|  楼主 | 2019-6-14 13:17 | 只看该作者
Latin_newday 发表于 2019-6-14 09:42
你这是用proteus仿真吧?如果是仿真的话,只与你双击MCU设置的时钟频率有关,与外部晶振设置频率无关。
当 ...

这样啊...我把改了MCU的时钟频率改了...确实行了...谢谢谢谢大佬...
我还有一个问题...我看PIC16F877的数据手册写最高外部晶振频率是20MHz...但是887的数据手册上没写。 那887的外部晶振最高频率也是20MHz么?我刚把MCU的时钟频率设置成64MHz了...它依旧能正常运行

使用特权

评论回复
10
17854230680|  楼主 | 2019-6-14 13:18 | 只看该作者
CoolSilicon 发表于 2019-6-14 09:43
你研究一下, 配置字... configuration bits的看看.

谢谢谢谢...我刚刚按照Latin——newday的方法解决了

使用特权

评论回复
11
奔波儿熊| | 2019-6-14 15:10 | 只看该作者
http://ww1.microchip.com/downloads/en/DeviceDoc/40001291H.pdf 这数据手册里写了外部最高频率了. 看我的截图. 至于你设成64M也能运行,是因为仿真的原因吧

使用特权

评论回复
12
17854230680|  楼主 | 2019-6-14 22:04 | 只看该作者
奔波儿熊 发表于 2019-6-14 15:10
http://ww1.microchip.com/downloads/en/DeviceDoc/40001291H.pdf 这数据手册里写了外部最高频率了. 看我的 ...

你好..能把这份资料发我一份么?谢谢谢谢
如果不能贴附件的话麻烦发到我邮箱751285094@qq.com吧...万分感谢

使用特权

评论回复
13
17854230680|  楼主 | 2019-6-14 22:13 | 只看该作者
奔波儿熊 发表于 2019-6-14 15:10
http://ww1.microchip.com/downloads/en/DeviceDoc/40001291H.pdf 这数据手册里写了外部最高频率了. 看我的 ...

不好意思...没看到网站...这一张大图蒙蔽了我的双眼

使用特权

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

本版积分规则

3

主题

16

帖子

0

粉丝