PIC单片机产生58K方波
时间:10-02
整理:3721RD
点击:
我采用的是7.3728Mhzde 晶振,采用自由控制模式,生成58k方波,但是却怎么也出不来,板子没有问题,求解决!感激不尽!下面是我的程序
void PwmInit()
{
PTCONbits.PTOPS=0X0;//1:1 后分频
PTCONbits.PTCKPS=0x0;//1:1预分频
PTCONbits.PTMOD=0X00;//自由运行模式
PTMR=0X8000;//向上计数
PTPER=0X1F;//PPTER=31 FOSC=7.3728mHZ Fpwm=58k
PDC3=0X1F;
PWMCON1=0X0404;//pwml3 is signal output
}
int main(int argc, char** argv)
{
void PwmInit();
PTCONbits.PTEN=1;//开启时基
return (EXIT_SUCCESS);
}
void PwmInit()
{
PTCONbits.PTOPS=0X0;//1:1 后分频
PTCONbits.PTCKPS=0x0;//1:1预分频
PTCONbits.PTMOD=0X00;//自由运行模式
PTMR=0X8000;//向上计数
PTPER=0X1F;//PPTER=31 FOSC=7.3728mHZ Fpwm=58k
PDC3=0X1F;
PWMCON1=0X0404;//pwml3 is signal output
}
int main(int argc, char** argv)
{
void PwmInit();
PTCONbits.PTEN=1;//开启时基
return (EXIT_SUCCESS);
}
定时器设置要对
找到问题了,是函数调用格式不太对,以前没用过MPLAB,所以编程的格式有些出入
只要寄存器定义不出现错误,很可能是别的问题,这个就是函数调用还有振荡器配置的问题,我觉得这个软件能不能一步一步的仿真,好看出来哪里有问题呢
主函数里面调用的 void PwmInit(); 前面不用void的吧
程序没贴完整吧?
按照数据手册上的来
按照数据手册上的来
谢谢小编分享,赞一个
