久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
利用Uart通信調試舵機轉向遇到的問題
[打印本頁]
作者:
DylanMingan
時間:
2017-12-14 19:08
標題:
利用Uart通信調試舵機轉向遇到的問題
想做個小車
是用舵機轉向
在網上查了不少舵機的資料
可以改變PWM固定的調整舵機轉向
但是這樣每次寫,燒錄,記錄角度的效率太低了
所以用Uart通信來改變PWM的值
但是遇到個問題
程序運行
在電腦輸入一次數值可以有效調節一次舵機
然后在串口調試助手再次輸入數據就無效了
請大神們多多指導,感激不盡!
#include<reg52.h>
sbit Motor=P1^4;
unsigned char Rxddata[4];
unsigned int a,c;
bit cmdArrived = 0;
unsigned char *buf;
void ConfigUART(unsigned int baud);
unsigned int StrToInt(unsigned char *str);
void main()
{
EA = 1;
ConfigUART(9600);
ET0 = 1;
TF0 = 0;
TR0 = 1;
TMOD &= 0xF0; /*設初值*/
TMOD |= 0x01;
Motor=1;
a=1500; /*數值 1500 即對應 1.5ms,為舵機的中間 90 度的位置*/
c=a;
TH0=-(a/256);
TL0=-(a%256); /*設定定時器初始計數值*/
buf = Rxddata;
while(1)
{
if(cmdArrived)
{
cmdArrived = 0;
a = StrToInt(Rxddata);
}
}
}
unsigned int StrToInt(unsigned char *str) //接收到的數據轉為int格式
{
unsigned int temp = 0;
while(*str!= 0)
{
if((*str < '0') || (*str > '9'))
{
break;
}
temp = temp *10 +(*str - '0');
str++;
}
return temp;
}
void InterrupPWM() interrupt 1
{
Motor=~Motor; /*輸出取反*/
c=20000-c; /*20000 代表 20 ms,為一個周期的時間*/
TH0=-(c/256);
TL0=-(c%256); /*重新定義計數初值*/
if(c>=500&&c<=2500)
c=a;
else
c = 20000-a; /*判斷脈寬是否在正常范圍之內*/
}
void ConfigUART(unsigned int baud) //設置波特率
{
SCON = 0x50;
TMOD &= 0x0F;
TMOD |= 0x20;
TH1 = 256 - (11059200/12/32)/baud;
TL1 = TH1;
ES = 1;
TR1 = 1;
ET1 = 0;
}
void InterruptUART() interrupt 4
{
if(RI)
{
RI = 0;
cmdArrived = 1;
*buf = SBUF;
SBUF = *buf++;
}
if(TI)
{
TI = 0;
}
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
www.日本在线观看
|
九色视频网
|
亚洲三级视频
|
国产高清自拍视频在线观看
|
狠狠干天天干
|
日本一二区视频
|
羞羞网站免费
|
亚洲综合一区二区三区
|
天堂av中文在线
|
99爱在线
|
国产日韩欧美一区
|
一区二区三区在线播放视频
|
99久久99
|
九九精品视频在线
|
综合精品
|
日本二区在线观看
|
成人在线
|
欧美一级片在线观看
|
中文字幕一区二区三区在线观看
|
日本羞羞影院
|
成人久久
|
欧美1区2区
|
av国产精品毛片一区二区小说
|
伊人伊人伊人
|
欧美精品久久久久久久久久
|
天天看天天摸天天操
|
久久久久亚洲
|
成年人视频在线免费观看
|
日韩色在线
|
免费视频二区
|
日韩精品一区二区三区视频播放
|
久久最新精品视频
|
国产精品久久久久久久久久
|
爱爱小视频
|
日韩av第一页
|
亚洲成人在线免费
|
国产精品一区在线观看
|
国产a区
|
国产91视频播放
|
成人精品鲁一区一区二区
|
久久久久久久久久久高潮一区二区
|