完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电位器控制舵机 随动,单片机是STC15W408AS 暂时没有用PWM模块,只是用的定时器0中断发出PWM,P3.2脚接4.7K电阻到舵机信号线, P1.1接5K电位器,但是接上电后舵机不稳定,电位器转到头了 ,舵机开始抖动,无法运转,求高手看看指教谢谢! 程序如下:
#include #include typedef unsigned char uchar; typedef unsigned int uint; ***it k=P3^2; uint a=0,v,c; /********************************* 定义相应操作位 ***********************************/ sfr AUXR = 0x8e; //辅助寄存器 sfr ADC_CONTR = 0xBC; //ADC控制寄存器 sfr ADC_RES = 0xBD; //ADC高8位结果 sfr ADC_LOW2 = 0xBE; //ADC低2位结果 sfr P1ASF = 0x9D; //P1口第2功能控制寄存器 #define ADC_POWER 0x80 //ADC电源控制位 #define ADC_FLAG 0x10 //ADC完成标志 #define ADC_START 0x08 //ADC起始控制位 #define ADC_SPEEDLL 0x00 //540个时钟 /********************************* 10微秒 定时器初始化 ***********************************/ void Inittimer0(void) //10微秒@11.0592MHz { ET0 = 1; //使能定时器0中断 EA = 1; AUXR |= 0x80; //定时器时钟1T模式 TMOD &= 0xF0; //设置定时器模式 TL0 = 0x91; //设置定时初值 TH0 = 0xFF; //设置定时初值 TR0 = 1; //定时器0开始计时 } /********************************* 读取ADC结果 ***********************************/ uint GetADCResult(uchar ch) { int V; ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START; _nop_(); //等待4个NOP _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成 ADC_CONTR &= ~ADC_FLAG; //Close ADC V=ADC_RES; return V; } /*---------------------------- 软件延时 ----------------------------*/ void Delay(uint n) { uint x; while (n--) { x = 5000; while (x--); } } /*---------------------------- 初始化ADC ----------------------------*/ void InitADC() { P1ASF = 0x02; //设置P1口为AD口 ADC_RES = 0; //清除结果寄存器 ADC_CONTR = ADC_POWER | ADC_SPEEDLL; Delay(2); //ADC上电并延时 } /*---------------------------- 舵机控制 ----------------------------*/ void kongzhi() { c=(v+50); if(a<=c) k=1; else k=0; } /*---------------------------- 主函数 ----------------------------*/ void main () { InitTimer0(); while(1) { InitADC(); GetADCResult(1); v=GetADCResult(1); c=0; } } void timer0int()interrupt 1 { TL0 =0x91; //设置定时初值 TH0 =0xFF; //设置定时初值 a++; kongzhi(); if(a=2000) a=0; }
|
|
相关推荐
7个回答
|
|
自己顶一个
|
|
|
|
程序不完整看不了
|
|
|
|
舵机的话要持续的pwm?你这个的话是持续的吗?建议可以用示波器看一下
|
|
|
|
谢谢哥们,可是没有示波器啊,直接调试的,舵机抖舵 ,不按照正常走啊 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard EL 1板卡-i2c与从设备通讯编程示例之i2c-tools工具使用
976 浏览 0 评论
stc15f2k60s2利用串口传输字模存储到eeprom并进行点阵显示
1093 浏览 1 评论
1356 浏览 0 评论
607 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口编写程序
1236 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11600 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-4 02:55 , Processed in 0.647057 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号