目錄:
1.PDG2設定
2.接線
3.程式
1.PDG2設定如下:
1.先設定MTU3_3
Mode1,設定TGRD為Cycle 的暫存器 ,
system clock/256,Rising edge,Time operating period=20ms
設定 TGRA 初始值 470(1.5ms,90度),
初始值hight,low output compare
波形圖
UART 使用 SCI2 (詳細請看UART 設定的文章)
2.接線
HC-05的TX ---->PB6
SG-90 橘色------>P33
3.程式
概述:手機連藍芽,控制伺服馬達,0度~180度。
int Set_SG_angle(int angle); //設定馬達角度的副函數
char rx;
int i=0,j;
unsigned int normal_angle[180]; //把本來 140->0度 800->180度做量化
void main(void)
{
R_PG_Clock_Set();
//UART
R_PG_SCI_Set_C2();
//LED
R_PG_IO_PORT_Set_P3();
//LED SET DARK
R_PG_IO_PORT_Write_P30(1);
//MTU FOR PWM
R_PG_Timer_Set_MTU_U0_C3();
//MTU Start count
R_PG_Timer_StartCount_MTU_U0_C3();
R_PG_SCI_StartReceiving_C2(&rx,1);
//形成量化舉證
for(j=0;j<180;j++)
normal_angle[j]=0.666666*j+(140+3*j);
normal_angle[0]=140;
normal_angle[179]=800;
while(1){
if(rx=='O'){
Set_SG_angle(0);
rx=0;
}
else if(rx=='F'){
Set_SG_angle(180);
rx=0;
}
}//While
}//end
//Rx中斷
Sci2ReFunc()
{R_PG_SCI_StartReceiving_C2(&rx,1);}
//設定角度副函數
Set_SG_angle(int angle)
{
//angle= 0~180
if(angle==180)
angle=179;
//改變TGR的數值 查表
R_PG_Timer_SetTGR_A_MTU_U0_C3(normal_angle[angle]);
}
沒有留言:
張貼留言