首先我又出问题了。。。
是这样我要输出PWM波,按照手册上面设置的,但用示波器观察波形就是没有输出波形,我的程序如下:
#include <p24FJ256GA110.h>
_CONFIG1(0X0f7f)
_CONFIG2(0X72fe) //主振荡器HS振荡器模式11.0592MHZ
_CONFIG3(0X1e01)
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned short ushort;
void init()
{
OSCCON=0x2200;
AD1PCFG=0xffff; //RB9数字io
TRISB=0X03ff; //PWM设为输出,即RB9
RPOR4bits.RP9R=18; //将OC1输出在RB9
OC1CON1=0;
OC1CON2 = 0x001f; //当前OC1作为触发源
OC1R=0;
OC1RS=0X01b1; //75%占空比
OC1CON1=0X0006;
PR2=350;
IPC1bits.T2IP=1;
IFS0bits.T2IF=0;
IEC0bits.T2IE=1;
TMR2=0;
T2CONbits.TON=1;
}
void __attribute__((__interrupt__, no_auto_psv)) _T2Interrupt()
{
_T2IF=0;
}
int main()
{
init();
while(1);
}
此时用示波器去测RB9输出一直为低电平。
当把OC1R设置为非0时,根据数据手册,此时RB9应输出高电平,再等下次匹配时输出PWM,但是此时测RB9却是一直保持高电平
请大家帮忙看看,实在是没辙了,在实验室搞了一天了。。。
|