历史上的今天
今天是:2024年08月31日(星期六)
2020年08月31日 | 单片机9g舵机调试程序
2020-08-31 来源:51hei
*******************************************************************************
* 程序名称:9g舵机控制
* 硬件说明:VCC-----------------4-6V
* GND---------------- GND
* PWM----------------IO口
*软件说明: 舵机的转动需要时间的,因此,程序中值的变化不能太快,不然舵机跟不上程序。
* 该舵机属于模拟舵机(非数字),锁定某一角度需要持续给PWM信号
*
*编写时间:2020.07.12
*
*特别说明:在工作精度高和快速系统中,该舵机转向速度跟不上
******************************************************************************/
#include #define SERVO TA2CCR2 //P2.5 void servo_angle(int angle) { //对应计数时钟为32768 Hz if(angle>90) angle=90; //输入限幅 if(angle<(-90)) angle=(-90); SERVO =(int) (49.152+angle*0.364); //(49为舵机0度基数) //SERVO = 82; //90 //SERVO = 49; //0 //SERVO = 16; //-90 } /***舵机PWM输出初始化***/ void servo_init() { //对应计数时钟为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) //{ // //计数时钟为1.048756 MHz 时 // if(angle>90) angle=90; //输入限幅 // if(angle<-90) angle=-90; // SERVO =(int)(1573.134+angle*11.654);//( 计数值1573= 1048756*1.5ms) //} // ///***舵机PWM输出初始化***/ //void servo_init() //{ // //计数时钟为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; } }
上一篇:MSP430单片机的特点
史海拾趣
|
前一段时间做了arm的一些开发,主要是编写了arm的启动软件和移植了uCOS-II到arm7。我的这个心得很初级,都是一些很基本的东西。现在拿出来和大家分享,希望对一些初学者有帮助。^_^ 由于这些东西发paper实在是没有价值,但是我感觉可以作为arm开发的 ...… 查看全部问答> |
|
用最新库玩转智林STM32开发板(之五)------在真彩屏上显示国旗 首先随便选一面五星红旗用PHOTO SHOP编成170*96像素的图. 本例程用的是170*96象素的小图,可以在PHOTO SHOP中用把任何图像编成 R5 G6 B5 BMP格式,这一点不难做到只要 选好像素,另存为,先按保存后选择高级选项中的R5 G6 B5 BMP格式保存下就可以 智 ...… 查看全部问答> |
|
如题,由于工作需要,刚接触这方面内容,完全新手。 请高手指教,最好有详细过程,先谢谢…… 补充个问题,我用platform builder 4.2编译WINCE 4.2的内核,输出的内核文件在800*480的屏上显示异常,只有最左边开始菜单那里显示了一条很窄的屏幕, ...… 查看全部问答> |
|
这两天在玩红牛的STM32F103ZE,运行的UCGUI,用FSMC刷TFT,其控制器为ILI9320。 经过一些优化,例如画点,画水平线和垂直线,填充矩形后,跑UCGUI的HIGH SPEED测试,最高是到6,160,000 pixel / s 这种程度。 我记得原来哪位高手说过FSMC最 ...… 查看全部问答> |
|
用Cadence的pad designer制作pad的时候会遇到为thermal relief和anti pad设计尺寸的问题 Thermal relief:正规的中文翻译应该叫做防散热PAD。它主要起一个防止焊接时焊盘散热太快不好焊的作用,在非整层都是铜的情况下它可以做成环形,大小跟 ...… 查看全部问答> |
|
大家好: 上图 AD9833 的时钟频率为 20MHZ,设计输出正弦波频率最高达 1MHZ, 以往我都是将 DDS 的输出直接接到 OP 做反相放大, 但后来我看一些文献后才知道最好先通过低通电路滤除 DDS 的高频噪声, 现在电路如上所示加了一级“七阶椭圆低 ...… 查看全部问答> |
|
本帖最后由 hjl240 于 2014-2-10 16:07 编辑 很多人都做过爱心流水灯,网上有很多相关的视频,但是具体分享怎么做的却不多。爱心流水灯对于那些比较懂单片机的人来说很容易做,但是对于单片机初学者,对于不怎么懂单片机的人来说还是有一定难度的 ...… 查看全部问答> |




