外部中断(2)

原创 2013年12月06日 00:42:01



#include "key.h"
void hander_irq();
void led_on();
void led_off();
void wat_on();
void wat_off();
int (*printf)(char *,...) = (void *)0x57e11d4c;
int flag =1;
int flag_two = 1;
int main()
{
*(volatile unsigned long *)0x56000000 = hander_irq;
//cpsr
__asm__ __volatile__(


"mrs r0,cpsr\n"
"bic r0,r0,#0x80\n"
"msr cpsr,r0\n"
:
:
:"r0","memory"
);
//enable
VIC0INTENABLE |=((1<<0)|(1<<26));
//select
VIC0INTSELECT &= ~((1<<0)|(1<<26)); 
//ex_interrupt
//key 配成中断
GPNCON = 2; 
//ext_interrupt上升沿
EINT0CON0 |= (1<<1);
EINT0MASK &= ~(1<<0);
//int_interrupt
//watdog
WTCON = (1<<2)|(0<<3)|(1<<5)|(255<<8);
       // WTCNT = 0x8000;
        WTDAT = 0x2000;

         //led
        GPMCON = (1<<0)|(1<<4)|(1<<8)|(1<<12);
GPMDAT = 0xf;


}
void hander_irq()
{

if(VICxRAWINTR & (1<<0))
{
//clear ext_interrupt_key
EINT0PEND = 1;
printf("this is key\n");
if(flag)
{
wat_on();
}
else{
wat_off();
led_off();
}
flag ^= 1;

if(VICxRAWINTR & (1<<26))
{
//clear int_interruptu_watdong_count
WTCLRINT = 0;
printf("this is watdong\n");
if(flag_two)
{
led_on();
}
else{
led_off();
}
flag_two ^= 1;
}
}


void led_on(){
GPMDAT = 0;
}
void led_off(){
GPMDAT = 0xf;
}
void wat_on(){
  WTCON &= ~(1<<5);

}
void wat_off(){
WTCON |= (1<<5);
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

AVR单片机(ATMEGA16)外部中断程序

#include #include #define uchar unsigned char #define uint unsigned int #pragma interrupt_handle...
  • zhoukouguren
  • zhoukouguren
  • 2012年07月05日 17:37
  • 1972

51单片机2个外部中断的应用

;51单片机的P1口上接有8只LED。;在外部中断0输入引脚P3.2接有一只按钮开关K1。;在外部中断1输入引脚P3.3接有一只按钮开关K2。;要求K1和K2都未按下时,P1口的8只LED呈流水灯显示...
  • baidu_33836580
  • baidu_33836580
  • 2016年01月25日 11:48
  • 1964

51单片机外部中断编程实例2

作者:江苏科技大学 机械工程学院 赵长金   1、51单片机的5大中断源:串行口中断、定时中断1、外部中断1、定时中断0、外部中断0;2、中断源的编号: 串行口中断为4、定时中...
  • zcj331
  • zcj331
  • 2014年04月11日 13:26
  • 2640

STM32学习笔记整理之(2)——外部中断

学习STM32也快一年了,现在工作的内容跟用的是STM32平台的,趁着年前工作量比较小,总结一下STM32的基础知识,不出意外的话将会连续发布完整的笔记整理,学习的时候主要是跟着野火教程学的,然后在整...
  • oXiaRiDeBing
  • oXiaRiDeBing
  • 2015年01月28日 16:00
  • 950

C2000LaunchPad学习记录(3)——外部中断翻转LED

程序功能:将GPIO12配置成中断输入。按键按下,触发下降沿中断,中断服务子程序翻转LED。 中断向量表 主函数,main.c /* Includes ------------------...
  • vvinggth204
  • vvinggth204
  • 2014年03月13日 16:36
  • 1292

STM32_外部中断(寄存器版)_笔记

STM32_外部中断,从程序入手,深度解读每条程序,理解知识点。
  • Mr_sunp
  • Mr_sunp
  • 2016年05月05日 21:07
  • 665

外部中断0和外部中断1

源程序: #include #define LED P1 void delay(int x); void light(int x); void light1(int x); void main() {...
  • chunxiaoyuye
  • chunxiaoyuye
  • 2016年03月11日 23:01
  • 243

stm32外部中断实验

// 上一篇是关于串口通信的,用到GPIO的复用,将GPIO复用为usart串口; // 此处是利用按键进行中断处理,这里配置GPIO模式为输入,因为要接收按键的状态; //GPIO端口有很多,ABC...
  • yanhuatangtang
  • yanhuatangtang
  • 2017年05月09日 17:11
  • 663

外部中断0——51程序

51单片机中一共有5个中断方式: ①外部中断0 ②定时器中断0 ③外部中断1 ④定时器中断1 ⑤串口中断 5个中断优先级从  高  到  低 void int0_init() ...
  • qq_35212671
  • qq_35212671
  • 2016年09月12日 23:16
  • 1589

linux外部中断过程

内核在linux-2.6.22.6\init\main.c\start_kernel函数中调用trap_init、init_IRQ 两个函数来设置异常的处理函数。asmlinkage void _...
  • sinat_24088685
  • sinat_24088685
  • 2016年05月05日 11:37
  • 1022
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:外部中断(2)
举报原因:
原因补充:

(最多只允许输入30个字)