#include"pic12f509.h"
#include<htc.h>
__CONFIG (0x0a);//(WDT_OFF & MCLRE_OFF & OSC_IntRC );
/******************引脚***************/
//unsigned char count=0;
#define LED1 GP4
#define LED2 GP2
main()
{
OSCCAL=0b00000000;
TRIS=0b00001000;
OPTION=0xc8;
TMR0=0x08;
while(1)
{
if(TMR0==0xFF)
{
TMR0=0x08;
//LED2 = !LED2;
LED1=!LED1;
}
}
}
上面的软件,是使GP4的I/O口输出250US,翻转一次的PWM信号,实测是275US,误差比较大,因为509没中断,所以有点误差也能理解,但在LED1=!LED1;前加了一条LED2 = !LED2;GP4的输出马上变成了0.82MS的低电+0.82MS的高电,一条语句使PWM变化这么大,真的没法想像,请大家帮忙看看要咋弄啊,谢谢. |