- {初始化设置;
- while(1)
- {
- if(Power)
- {
- GetData();//采集数据
- if(ucIfbrk==0) //采集无错数据转换
- {
- DataChg();
- DataSend(); //串口发送数据
- UART0_Send_Byte('#');
- delay_ms(1000);
- }
- else
- {
- UART0_Send_Byte('E');
- ucIfbrk = 0;
- }}}}
- //开关P2.0中断
- #pragma vector= PORT2_VECTOR
- __interrupt void P2ISR(void)
- {
- if(P2IFG&BIT0)
- {
- delay_ms(8);//延时消抖
- if(!(P2IN&BIT0))
- {
- if(Power)//若原来是开机状态,现在改为关机,
- {
- Power=0;
- P2OUT =Power;//led关P2.1=0
- P2IFG &=~BIT0;
- _BIS_SR(LPM2_bits+GIE); // Enter LPM3
- }
- else///若原来是guan机状态,现在改为开机
- {Power=1;
- P2OUT =(Power<<1);//LED开
- P2IFG &=~BIT0;
- LPM2_EXIT; // Exit LPM3 on return
- }
- }
- P2IFG &=~BIT0;
- }
复制代码本人想搞个开关,实现按一下关机,按一下在进入工作状态,Power=1作为工作,power=0为低功耗,请教一下进入什么低功耗模式合适?相当与关机。
以上为我写的简单程序,发现中断部分呢正常工作,但是当Power——》0——》1这时,无法进入到while的循环中,请教问题在哪里?能否提供一两个例子让我看看?
[
本帖最后由 koanzhongxue 于 2013-3-26 13:36 编辑 ]
此帖出自
小平头技术问答
一周热门 更多>