中级会员
 
- 积分
- 236
- 金钱
- 236
- 注册时间
- 2017-8-16
- 在线时间
- 44 小时
|
2金钱
实验是按键实验增加的内容
.C
void Motor_Ctrl_Angle(int angle,int n)
{
u16 j;
for(j=0;j<64*angle/45;j++)
{
motor_control_F(n);
}
}
void Motor_Ctrl_Angle_Z(int angle,int n)
{
u16 j;
for(j=0;j<64*angle/45;j++)
{
motor_control_Z(n);
}
}
void motor_control_F(int n)
{
D_HIGH2;
delay_us(n);
A_LOW2;
delay_us(n);
C_HIGH2;
delay_us(n);
D_LOW2;
delay_us(n);
B_HIGH2;
delay_us(n);
C_LOW2;
delay_us(n);
A_HIGH2;
delay_us(n);
B_LOW2;
delay_us(n);
}
void motor_control_Z(int n)
{
A_HIGH2;
delay_us(n);
D_LOW2;
delay_us(n);
B_HIGH2;
delay_us(n);
A_LOW2;
delay_us(n);
C_HIGH2;
delay_us(n);
B_LOW2;
delay_us(n);
D_HIGH2;
delay_us(n);
C_LOW2;
delay_us(n);
}
void Motor_Ctrl_Off(void)
{
GPIO_ResetBits(GPIOG, GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6);
}
int main(void)
{
vu8 key = 0;
delay_init();
LED_Init(); //LED端口初始化
KEY_Init(); //初始化与按键连接的硬件接口
BEEP_Init(); //初始化蜂鸣器端口
LED0 = 0; //先点亮红灯
vu16 t ;
vu16 len;
vu16 times=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200);
motor_configuration();
delay_ms(1000);
Motor_Ctrl_Off();
while(1)
{
key=KEY_Scan(0); //得到键值
if(key)
{
switch(key)
{
case WKUP_PRES: //控制蜂鸣器
// BEEP=!BEEP;
Motor_Ctrl_Angle(720,1800);
LED0=!LED0;
// Motor_Ctrl_Off();
break;
case KEY2_PRES: //控制LED0翻转
//LED0=!LED0;
break;
case KEY1_PRES: //控制LED1翻转
LED1=!LED1;
Motor_Ctrl_Angle_Z(360,1800);
break;
case KEY0_PRES: //同时控制LED0,LED1翻转
LED0=!LED0;
LED1=!LED1;
Motor_Ctrl_Off();
break;
}
}else delay_ms(10);
}
}
|
|