【发布时间】:2019-03-06 13:37:24
【问题描述】:
我正在尝试对 msp430 进行编程以更改变量以更改闪烁 LED 的速度。这是我的第一次尝试。按下按钮时如何执行子程序“changeVelocity”?
bic.b #00001000b, &P2DIR ; P2.3 as input
bis.b #1,&P1DIR ; P1.0 as output
bis.b #00001000b, &P2REN ; select internal resistor
bis.b #00001000b, &P2OUT ; make it pull-up
main:
xor.b #1,&P1OUT ; Toggle P1.0
call #ExtraDelay
bit.b #00001000b, &P2IN ;poll 2.3 (trying to detect the button)
jz changeVelocity ;this is how I'm trying but do not work as expected.
jmp main
【问题讨论】:
-
检查中断。
-
this is how I'm trying but do not work as expected.什么没有按预期工作?如果设置了零标志,则执行跳转到changeVelocity。但是那里会发生什么?这些代码是否会更改闪烁速度变量并跳回主代码?为什么不像#ExtraDelay那样调用“changeVelocity”作为子程序?此外,您按下按钮的时间必须超过 LED 切换所需的时间,因为只要您处于#ExtraDelay例程中,CPU 就无法测试 P2.3 位。正如@fuz 所说,最好使用中断。