完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
利用IO口的两个引脚作为外部中断信号的输入引脚进行外部中断判断,主程序中已进入低功耗LPM3状态,然后写外部中断程序,请问这有做的话可以实时检测中断信号并进入相应的中断程序吗???或者说应该把外部中断程序放在循环中呢
|
|
相关推荐
10个回答
|
|
要用外部中断,必须在有标明外部中断的引脚设置才行
|
|
|
|
外部中断(或者说所有的中断)程序是独立于主程序的,不能写在循环程序里的。
|
|
|
|
#include "studio.h" unsigned char flag; void main(void) { WDTCTL = WDTPW + WDTHOLD; TACCTL0=CCIE;//开启定时器A中断 TACCR0=1000-1; TACTL=TASSEL_1+ID_3+TACLR+MC_1;//选择ACLK作为时钟源,时钟八分频,定时器清除位 P1DIR = 0x9F; P1OUT = 0x00; P2DIR = 0xFF; P2OUT = 0x00; P3DIR = 0xFF; P3OUT = 0x00; P4DIR = 0xFF; P4OUT = 0x00; P5DIR = 0xFF; P5OUT = 0x00; P6DIR = 0xFF; P6OUT = 0x00; /****P1.5中断触发********/ P1IES^=BIT5;//设置为上升沿触发 P1IFG&=~BIT5;//清除终端标志位 P1IE|=BIT5;//设置终端使能 /*****P1.6中断触发******/ P1DIR&=~BIT6;//中断引脚P1.6设置为输入端口 P1IES|=BIT6;//设置为下降沿触发 P1IFG&=~BIT6;//清除终端标志位 P1IE|=BIT6;//设置终端使能 //P1DIR|=BIT0;//MCU工作状态标志 _EINT(); __bis_SR_register(LPM3_bits ); // Enter LPM3, enable interrupts while(1) { //__bis_SR_register(LPM3_bits ); // Enter LPM3, enable interrupts } } #pragma vector =PORT1_VECTOR __interrupt void P1_Interrupt(void) { if((P1IFG&0X40)==BIT6)//判断TLV3691是否产生低电平中断信号 { P1IFG&=~BIT6;//中断标志清除 P2OUT&= ~(BIT7);//P2.0 LED等灭 flag=0; //__bis_SR_register(LPM3_bits ); // Enter LPM3, enable interrupts } else if((P1IFG&0X20)==BIT5)//判断TLV3691是否产生高电平中断信号 { P1IFG&=~BIT5;//中断标志清除 //__bic_SR_register_on_exit(LPM3_bits); // Clear LPM3 bits from 0(SR) P2OUT|=BIT7;//P2.0 LED灯亮 flag=1; } } #pragma vector =TIMERA0_VECTOR __interrupt void TIMER_A(void) { if(flag==1) { P1OUT^=BIT1; } else if(flag==0) { P1OUT&=~(BIT1); } } |
|
|
|
用上拉电阻的方法,给低电平灯亮。。
|
|
|
|
中断可以唤醒低功耗。
|
|
|
|
外部中断程序放在循环中为什么呢?
|
|
|
|
中断信号并进入相应的中断程序
|
|
|
|
考虑到效率需要使用外部中断
|
|
|
|
配置中断要放前面的,低功耗进入放最后。
|
|
|
|
只要进入低功耗时,不关闭此中断,那么中断功能还是能实现的。再说了,外部中断功能也不耗多少电。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
621 浏览 1 评论
1962 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1068 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1487 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1924 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 18:20 , Processed in 0.779777 second(s), Total 91, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号