1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標(biāo)題:
求助如何用51單片機(jī)精準(zhǔn)地控制舵機(jī)的角度(新人貼)
[打印本頁]
作者:
手寫從前156
時(shí)間:
2018-9-27 12:03
標(biāo)題:
求助如何用51單片機(jī)精準(zhǔn)地控制舵機(jī)的角度(新人貼)
這是目前我寫的程序,有問題的是只要上電舵機(jī)就會(huì)自動(dòng)地轉(zhuǎn)動(dòng),然后就沒反應(yīng)了:
#include<reg52.h>
//引腳位定義
sbit key1 = P3^2;
sbit key2 = P3^3; //獨(dú)立按鍵引腳
sbit pwm1 = P1^2; //讀取脈寬
sbit led1 = P2^2; //點(diǎn)亮led3
sbit led2 = P2^1; //點(diǎn)亮led2
unsigned int JD = 90;//角度累加
unsigned int T0NUM = 0; //中斷累加
void init_time()//初始化定時(shí)器
{
// AUXR &= 0x7F; //定時(shí)器時(shí)鐘12T模式
TMOD = 0x01; //設(shè)置定時(shí)器模式
TL0 = 0xF5; //設(shè)置定時(shí)初值
TH0 = 0xFF; //設(shè)置定時(shí)初值
EA = 1; //中斷總開關(guān)
TR0 = 1; //定時(shí)器0開始計(jì)時(shí)
ET0 = 1; //打開中斷允許開關(guān)
}
void Delay10ms() //12晶振
{
unsigned char i, j;
i = 117;
j = 184;
do
{
while (--j);
} while (--i);
}
/*void PWMOUT(unsigned jiaodu)
{
if(T0NUM <= jiaodu+45)
pwm1 = 1;
else
pwm1 = 0;
if(T0NUM >= 1801)
T0NUM = 0;
} */
void main()
{
init_time();
while(1)
{
if(key1 == 0)
{
Delay10ms();
if(key1 == 0)
{
JD ++ ;
led1 = ~led1;
while(key1 == 0);
}
}
//----------------------------
if(key2 == 0)
{
Delay10ms();
if(key2 == 0)
{
JD -- ;
led2 = ~led2;
while(key2 == 0);
}
}
//------------------------------
if(JD > 180)
JD = 180 ;
if(JD < 1)
JD = 1 ;
//------------------------------
}
}
void time0_init() interrupt 1
{
TR0 = 0;
TL0 = 0xF5; //設(shè)置定時(shí)初值
TH0 = 0xFF; //設(shè)置定時(shí)初值
T0NUM++;
TR0 = 1;
if(T0NUM <= JD+45)
pwm1 = 1;
else
pwm1 = 0;
if(T0NUM >= 1801)
T0NUM = 0;
}
復(fù)制代碼
作者:
cccc888
時(shí)間:
2018-9-27 15:32
從你的源碼看 可能是 P1^2接電機(jī)信號(hào)線。定時(shí)時(shí)間可能是11微秒,頻率11-12M
void time0_init() interrupt 1這個(gè)程序如果mcu是12t的,那么這個(gè)程序沒處理完,就又進(jìn)入
中斷了。
作者:
喵唧唧
時(shí)間:
2018-9-27 20:09
學(xué)到了厲害
作者:
小璽
時(shí)間:
2020-2-25 01:44
感覺這種中斷次數(shù)太多,耗費(fèi)cpu太大。請問哪位大神還有更好的舵機(jī)小角度調(diào)整辦法嗎?
作者:
haierzaifei11
時(shí)間:
2020-2-25 08:31
我也感覺中斷次數(shù)太多,耗費(fèi)cpu太大
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1