历史上的今天
今天是:2024年10月18日(星期五)
2019年10月18日 | MSP430F5529的IO口管脚的中断学习笔记
2019-10-18 来源:eefocus
非常简单的一个程序,在F5529的开发板上用按键的IO中断控制LED的亮灭:
#include
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= BIT0; //将LED1对应的IO口P1.0设置为输出
P1OUT &= ~BIT0; //初始化该灯设置为灭
P1DIR &= ~BIT7; //将按键1对应的IO口P1.7设置为输入
P1IFG &= ~BIT7; //初始化清空中断标志位
P1IE |= BIT7; //P1.7中断使能
P1IES |= BIT7; //下降沿产生中断
P1OUT |= BIT7; //P1.7设置为上拉电阻:OUT = 1; REN = 1;
P1REN |= BIT7;
__enable_interrupt();
while(1);
}
#pragma vector = PORT1_VECTOR //固定格式,声明中断向量地址,不能变
__interrupt void LED(void) //函数名,可以任意定义
{
int i;
switch(__even_in_range(P1IV,18))
{
case 0x10:
for (i = 0; i < 12000; i++);
if ((P1IN & BIT7) == 0) //注意位运算的优先级!!!非常重要
P1OUT ^= BIT0;
break;
default:
break;
}
}
经验总结:
1. 按键需要延时消抖
2. 标志位需要手动清零 (此处不完全正确,还有问题需要考虑)
3. 中断程序格式:
#pragma vector = PORT2_VECTOR //固定格式,声明中断向量地址,不能变
__interrupt void fuck430(void) //函数名,可以任意定义
{
switch(__even_in_range(P2IV,18))
{
case 0x06:
…
break;
default:
break;
}
}
4. 主程序中要开总中断,然后有循环
5. 位运算的优先级很低,注意加括号
6. 按键的上拉电阻,OUT、REN、IES
一上午终于把IO中断弄懂了。吸取位运算优先级的教训。
史海拾趣
|
这是一个机械臂继电器控制电路!想用电子电路改造一下!不知可否? (机械臂原始位置在A点XW1位,启动按钮后开始向B点运动电机正转,接触到XW2时电机反转,返回到A点停止等待下一次启动!)… 查看全部问答> |
|
91program ,yashi高手都来看看,EventModify函数的实现问题 控制面版里的显示里面有一个背景光的对话框,这里只是实现了注册表的更改,现在我想在这里实现对背光的控制。 我找到了实现代码的地方在D:\\WINCE500\\PUBLIC\\WCESHELLFE\\OAK\\CTLPNL\\CPLMAIN这里的screen.cpp里面 HANDLE hEvent = CreateEven ...… 查看全部问答> |
|
这是MAX17005B Datasheet ,如附件 MAX 17005B 低成本、高效、1.2MHZ 开关频率的 充电 芯片。 特点:1.2MHZ 开关频率; 电感电流可控体系结构; &n ...… 查看全部问答> |
|
.mainbox h1{background:none;} <!-- 1. 概述 本文是关于BeagleBone开发板主要功能模块的性能测试。为硬件开发人员选择AM3359进行系统设计提供必要的测试数据和对比结果。 2. &n ...… 查看全部问答> |
|
针对ISE下的Modelsim 仿真可以分为直接在ISE中采用添加库的方式安装Modelsim,例如 当需要仿真的时候,选中Simulation,而开发的时候选择Implementation。 另外一种是采用运行Modelsim然后导入VHDL文件,也就是仿真的实体,再导入test ...… 查看全部问答> |
|
本帖最后由 电子嗷嗷叫 于 2014-7-3 16:06 编辑 大家每天都会用到示波器吧,现在越来越多的国产品牌在冲击着国际品牌的市场,作为工程师,你肯定也是用过国产品牌的示波器吧,来看看国产示波器品牌吧 多选投票: ( 最多可选 2 项 ), 共有 294 ...… 查看全部问答> |
|
1 .生成可调试程序比如一个源文件:main.cpp交叉编译生成test 加-g生成调试信息.arm-linux-gcc main.cpp -g -o test千万不要strip,否则调试信息就不存在了. 2. gdbserver调试假设板子IP为192.168.0.19, pc ip为192.168.0.108板子上:gdb ...… 查看全部问答> |




