图4-1 电机的工作原理
4.1.2程序函数的设计
首先,在主函数中定义控制电机所需要用到的GPIO口,使用了GPIO口中C组的PORT7(在开发板上应该短接PC_7):
#define Motor_PERIPH SYSCTL_PERIPH_GPIOC //定义电机C组的GPIO口
#define Motor_PORT GPIO_PORTC_BASE
#define Motor_PIN GPIO_PIN_7 //定义PC_7
#define Motor_RUN() GPIOPinWrite(Motor_PORT , Motor_PIN , 0x01 << 7)
//定义电机运行
#define Motor_STOP() GPIOPinWrite(Motor_PORT , Motor_PIN , 0x00 << 7)
//定义电机停止
接着定义蜂鸣器,使用了GPIO口中A组的PORT5(在开发板上应该短接PA_5):
#define SPEAK_PERIPH SYSCTL_PERIPH_GPIOA //定义蜂鸣器A组的GPIO口
#define SPEAK_PORT GPIO_PORTA_BASE
#define SPEAK_PIN GPIO_PIN_5 //定义PA_5
#define SPEAK_ON() GPIOPinWrite(SPEAK_PORT , SPEAK_PIN , 0x00 << 5)
//定义蜂鸣器运行
#define SPEAK_OFF() GPIOPinWrite(SPEAK_PORT , SPEAK_PIN , 0x01 << 5)
//定义蜂鸣器停止
然后编写控制电机的函数:
void Motor_Cort(unsigned char Com)
{
if(Motor_Cor)
{
Lcd_Seg.D2 = AscToSeg('-');
Lcd_Seg.D3 = AscToSeg('-');
Lcd_Seg.D4 = AscToSeg('r');
Lcd_Update(); // 刷新LCD的内容
uartPuts("电机转动");
UARTCharPut(UART0_BASE, '\r'); // 回显回车换行<CR><LF>
UARTCharPut(UART0_BASE, '\n');
Motor_RUN();
}
else
{
//Lcd_Seg.D1 = AscToSeg('S');
Lcd_Seg.D2 = AscToSeg('-');
Lcd_Seg.D3 = AscToSeg('-');
Lcd_Seg.D4 = AscToSeg('S');
Lcd_Update(); // 刷新LCD的内容
uartPuts("电机停止");
UARTCharPut(UART0_BASE, '\r'); // 回显回车换行<CR><LF>
UARTCharPut(UART0_BASE, '\n');
Motor_STOP();
}
}
最后,在主函数调用Motor_Cort()控制电机的运动。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>