peterhzm 发表于 2011-6-26 01:28:51

用单片机来控制舵机转动角度,求助

我写了一个最简单的程序,就是用定时器来控制舵机转一定角度,但是出现了问题,就是无论我把占空比怎么改,他都只是转向一个角度,不会转到其他的角度,请问我的程序有什么错吗?
#include <reg52.h>


sbit ControlPort = P1^0;//舵机信号端口

unsigned char TimeOutCounter = 0,LeftOrRight = 0;//TimeOutCounter:定时器溢出计数          LeftOrRight:舵机左右旋转标志

void InitialTimer ( void )       
{
    TMOD=0x10;   //定时/计数器1工作于方式1
    TH1 = ( 65535 - 500 ) / 256;          //0.25ms
        TL1 = ( 65535 - 500 ) % 256;
    EA=1;      //开总中断
    ET1=1;       //允许定时/计数器1 中断
    TR1=1;       //启动定时/计数器1 中断
}

void main ( void )       //主函数
{
    InitialTimer();
        while(1) ;
}

void Timer1 ( void ) interrupt 3//定时器中断函数
{
    TH1 = ( 65535 - 500 ) / 256;
        TL1 = ( 65535 - 500 ) % 256;
        TimeOutCounter ++;

                        if( TimeOutCounter <= 6 )   //通过修改这个来改变占空比,定时器每次中断为0.25MS,但是改变了没有变化,求解
                        {
                                ControlPort = 1;
                        }
                        else
                        {
                                ControlPort = 0;
                        }
       
        if( TimeOutCounter == 80 )       //周期20ms(理论值)
        {
                TimeOutCounter = 0;
        }
}

peterhzm 发表于 2011-6-26 12:44:01

有谁知道告诉一下吧~

215661599 发表于 2011-7-16 12:30:58

jjjiao123 发表于 2011-7-21 01:46:54

舵机应该 调 频率吧

木虫 发表于 2013-8-3 15:24:50


TimeOutCounter == 80改为TimeOutCounter >=80试试
页: [1]
查看完整版本: 用单片机来控制舵机转动角度,求助