PWM频率设置问题
本帖最后由 pzsh 于 2022-6-25 16:19 编辑PIC16F887的PWM工作频率能由外部晶振决定么?
你有什么打算呢?或者你想知道什么?
PWM周期=[(PR2+1)*4]*Tosc*预分频。这里的Tosc能由外部晶振确定么?
应该是可以。我以前用这个也都是用外部晶振。
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
PWM周期=[(PR2+1)*4]*Tosc*预分频。这里的Tosc能由外部晶振确定么?
求教大佬这个怎么该?我为什么用不了外部晶振做Fosc
求教大佬看一下楼下我写的程序该怎么改?我为什么用不了外部晶振做Fosc
你这是用proteus仿真吧?
如果是仿真的话,只与你双击MCU设置的时钟频率有关,与外部晶振设置频率无关。
当然实际线路就是使用外部晶振了,
你研究一下, 配置字... configuration bits的看看.
这样啊...我把改了MCU的时钟频率改了...确实行了...谢谢谢谢大佬...
还有一个问题...我看PIC16F877的数据手册写最高外部晶振频率是20MHz...但是887的数据手册上没写。 那887的外部晶振最高频率也是20MHz么?
我刚把MCU的时钟频率设置成64MHz了...它依旧能正常运行
http://ww1.microchip.com/downloads/en/DeviceDoc/40001291H.pdf 这数据手册里写了外部最高频率了. 看我的截图. 至于你设成64M也能运行,是因为仿真的原因吧
嗯,我再好好缕一缕吧,有了好消息及时通知大家
页:
[1]
2