欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2058|回復: 0
收起左側(cè)

單片機9g舵機調(diào)試程序

[復制鏈接]
ID:582953 發(fā)表于 2020-8-30 11:12 | 顯示全部樓層 |閱讀模式
*******************************************************************************
* 程序名稱:9g舵機控制
* 硬件說明:VCC-----------------4-6V
*                 GND---------------- GND
*                 PWM----------------IO口
*軟件說明:  舵機的轉(zhuǎn)動需要時間的,因此,程序中值的變化不能太快,不然舵機跟不上程序。
*          該舵機屬于模擬舵機(非數(shù)字),鎖定某一角度需要持續(xù)給PWM信號
*
*編寫時間:2020.07.12
*
*特別說明:在工作精度高和快速系統(tǒng)中,該舵機轉(zhuǎn)向速度跟不上
******************************************************************************/
#include <msp430.h>
#define SERVO TA2CCR2    //P2.5

void servo_angle(int angle)
{
    //對應(yīng)計數(shù)時鐘為32768 Hz
    if(angle>90)   angle=90;      //輸入限幅
    if(angle<(-90))  angle=(-90);
    SERVO =(int) (49.152+angle*0.364);        //(49為舵機0度基數(shù))
    //SERVO = 82;                 //90
    //SERVO = 49;                 //0
    //SERVO = 16;                   //-90
}
/***舵機PWM輸出初始化***/
void servo_init()
{
        //對應(yīng)計數(shù)時鐘為32768 Hz
        P2DIR |= BIT5;
        P2SEL |= BIT5 ;//PWM輸出
        TA2CCR0 =655;  //PWM周期長度   必須20ms(50Hz)時鐘不同,值不同
        TA2CCTL2 = OUTMOD_7;
        TA2CTL = TASSEL__ACLK + MC_1 +TACLR;
}

//void servo_angle(int angle)
//{
//    //計數(shù)時鐘為1.048756 MHz 時
//    if(angle>90)      angle=90;      //輸入限幅
//    if(angle<-90)     angle=-90;
//    SERVO =(int)(1573.134+angle*11.654);//( 計數(shù)值1573= 1048756*1.5ms)
//}
//
///***舵機PWM輸出初始化***/
//void servo_init()
//{
//        //計數(shù)時鐘為1.048756 MHz 時
//        P2DIR |= BIT5;
//        P2SEL |= BIT5 ;//PWM輸出
//        TA2CCR0 =20975;//PWM周期長度   必須20ms     1.048756/50 Hz
//        TA2CCTL2 = OUTMOD_7;
//        TA2CTL = TASSEL__SMCLK + MC_1 +TACLR;
//}



//扇形掃描
int i=0,a=0;
int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;   // Stop watchdog timer
    servo_init();
    servo_angle(0);
    _delay_cycles(5000000);
    while(1)
    {
            if(a)
            {
            i-=2;
            servo_angle(i);
            _delay_cycles(20000);
            }
            else
            {
             i+=2;
             servo_angle(i);
             _delay_cycles(20000);
            }
            if( i==90 || i==-90 )   a=!a;
    }
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表