OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4924|回复: 1

STM8外中断唤醒有问题!!!!!!!!!!!!!

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2014-7-16
在线时间
0 小时
发表于 2014-7-16 17:58:19 | 显示全部楼层 |阅读模式
5金钱
用STM8外中断来唤醒停机状态,但只能唤醒一次,为什么????????


#include  "iostm8s003f3.h"
#define  nop() asm("nop")
#define K1  PD_IDR_IDR4  //按键
#define LED PD_ODR_ODR2  //LED指示,低亮

void delay(unsigned char i)
{
 unsigned char j;
 j=255;
 while(i--)
 {
  while(j--);
 }
}
void main()
{
 unsigned char temp;
 delay(10);
 D_CR1 |= 0x10;  //PD4上拉输入
 D_CR1 |= 0x4;  //
 D_DDR |= 0x4;  //PD2设置为输出 
 LED=0;
 asm("RIM");  //开总中断
  while(1)
 {
  LED=0;//灯亮;
  delay(255);
  while (!K1)
  {
   temp=0;//延时清0
      delay(255);
   LED=!LED;
  }
  temp++;
  if (temp>20)//按键没按下时,延时再停机
  {
   temp=0;
   D_CR2 |= 0x10;  //开PD4中断
   EXTI_CR1 = 0x80; //PD4下降沿中断;
   LED=1;//关灯
   asm("halt");  //停机
   nop();nop();nop();nop();nop();
   D_CR2 = 0x0; //   
  }
 }

#pragma vector=0x08//
__interrupt void EXTI_PD()//PD外中断
{
 nop();
 D_CR2 = 0x0; //关中断    
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-7-16 23:22:40 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表