工具与软件:
您好!
所有内容都在标题中。 就差不多了。
我想在我进入 ISR 时临时禁用中断、并在 ISR 结束时重新启用这些中断。
在以下示例中、我使用定时器 B 来获得循环中断。
计时器本身似乎可以工作、我已经通过示波器验证了 P10位已切换
该周期取决于 TBCCR0值。
现在、为了程序不会自行启动、我想尽快禁用中断
ISR 中的电流。
我可以验证:
-中断使能有效、可以是_EINT ()、_ENABLE_INTERRUPTS ()、bis_SR_register (LPM0+GIE)、也可以是
其他型号。
-即使我没有在 ISR 结束时重新启用中断,程序也不会改变(也就是说它仍然有效),
如以下程序所示。 由于我尚未重新启用中断、因此它应该只在 ISR 中停止一次、
对吧? 但它仍然运行相同(与未注释的_eINT()没有区别)。
我尝试了上述所有型号、用相关功能进行替换。
问:有什么问题吗? 是否有可能临时禁用中断?
int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= 0x01; // P1.0 output TBCCTL0 = CCIE; // CCR0 interrupt enabled TBCCR0 = 50000; TBCTL = TBSSEL_2 + MC_2 + TBCLR; // SMCLK, contmode, clear TBR // _enable_interrupts(); __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, enable interrupts // __no_operation(); // For debugger } // Timer B0 interrupt service routine #pragma vector=TIMERB0_VECTOR __interrupt void TIMERB0_ISR(void) { // _disable_interrupts(); __bic_SR_register(LPM0_bits + GIE); P1OUT ^= 0x01; // Toggle P1.0 TBCCR0 += 50000; // Add Offset to CCR0 [Cont mode] // _EINT(); }
顺便说一下:如何发送图像? 菜单->插入->图像/视频文件中没有浏览选项。
如果我尝试将文件拖放到弹出窗口上、则可以在导航窗口中看到图像、但这并不是完全正确的
我想要的。
谢谢!
R