husthxh 发表于 2015-12-7 15:13:31

PIC10F200输出PWM波占空比问题。

想用PIC10f200单片机输出一周期10ms的pwm信号驱动电机,但是调试过程中发现占空比在3%——97%区间是正常的,但是占空比到了3%后就无法再降低了,除非直接变为0;通用占空比到97%后也无法再提升了,除非直接变为100%,无法达到98%、99%的效果;不知问题在哪里?谁了解的给个建议,谢谢。PWM波是通过定时器的方式控制普通IO口实现的!
附上代码:
void main(void)
{
        intAD_data = 0;
        TRIS = 0X01;                                   //设置所有IO口为输出
        FOSC4 = 0;   
        OPTION = 0X06;                                //64分频

        while(1)
        {

                ADCON0 = 0x43;                       
                AD_data =ADRES & 0xFF;                               
               

                if(AD_data >1)
                {
                   if( TMR0 <= AD_data) )
                                GP2 = 1;
                        else if( TMR0 < 255 )
                                GP2 = 0;
                        else
                                {TMR0=0;GP2 =1;}
                               
                }
                else
                        GP2 = 0;
        }
}

husthxh 发表于 2015-12-8 14:05:57

这个版都没人关注的?

tt98 发表于 2015-12-8 16:35:44

ADCON0 是楼主在手册中看到有这个寄存器吗?!PIC10F200中有吗{:titter:}

husthxh 发表于 2015-12-9 10:13:27

tt98 发表于 2015-12-8 16:35
ADCON0 是楼主在手册中看到有这个寄存器吗?!PIC10F200中有吗

搞错了。使用PIC10F220新品{:lol:}

jyrpxj 发表于 2016-1-2 23:08:58

你的程序多次读定时器,注意每次读出来的值可能不一样。建议先读定时器到一个变量。再判断这个变量。

飞舞的鬼车 发表于 2016-6-17 16:19:26

请问楼主是采用什么编程器对PIC10F200进行烧写调试的呢,我手里只有KIT3,能进行编程调试吗?

starsun 发表于 2018-2-6 21:58:25

jyrpxj 发表于 2016-1-2 23:08
你的程序多次读定时器,注意每次读出来的值可能不一样。建议先读定时器到一个变量。再判断这个变量。 ...

楼主可以按这样试试
页: [1]
查看完整版本: PIC10F200输出PWM波占空比问题。