📄 按键和电机.c
字号:
#include <msp430x41x.h>
#include "main.h" //自己定义的必要的结构和变量
//按键控制电机实例程序
//按键按一下,电机正转,再按一下,电机反转,再按一下,电机停止。
//其中,电机为3V
// |---------|
// | |
// | |--P6.6--电机+
// | |
// | |--P6.7--电机-
// | |
// | |--P2.2--按键
// -----------
//以下为初始化函数
void initial_port(void);//初始化端口
//以下为主程序逻辑函数
void monitor_key(void);//对按键进行监控
static struct BIT16_flag common_flag1={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
#define is_one_second common_flag1.b0
#define is_k1_key_ok common_flag1.b1
INT8U one_second=0;
INT8U k1_key_page=0;//按键分页
//主函数
void main(void)
{
initial_port();
_EINT();
while(1){
monitor_key();
LPM3;
}
}
//功能:按键
//描述:无
//参数:无
//返回:无
void monitor_key(void)
{
if(is_k1_key_ok)
{
is_k1_key_ok=0;
k1_key_page++;
k1_key_page %=3;
if(k1_key_page==1)//正转
{
P6OUT &=~BIT6;
P6OUT |= BIT7;
}
else if(k1_key_page==2)//反转
{
P6OUT &=~BIT7;
P6OUT |= BIT6;
}
else//stop
{
P6OUT &=~(BIT7+BIT6);
}
}
}
//功能:初始化有关端口
//描述:对有关端口进行设置
//参数:无
//返回:无
void initial_port(void){
//以下为看门狗定义
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P2IES |= BIT2;//P2.2-按键
P2IE |= BIT2;
P6DIR |= (BIT6+BIT7);
P6OUT &= ~(BIT6+BIT7);//P6.6,P6.7-电机
}
#pragma vector=PORT2_VECTOR
__interrupt void INT_port2(void){
if(P2IFG & BIT2) {//键
is_k1_key_ok=1; //键按下
}
P2IFG=0;
LPM3_EXIT;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -