📄 eint2.lst
字号:
ARM COMPILER V2.50a, EINT2 16/06/07 08:25:44 PAGE 1
ARM COMPILER V2.50a, COMPILATION OF MODULE EINT2
OBJECT MODULE PLACED IN EINT2.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe EINT2.c THUMB BROWSE DEBUG TABS(4)
stmt level source
1 /****************************************Copyright (c)**************************************************
2 ** Guangzou ZLG-MCU Development Co.,LTD.
3 ** graduate school
4 ** http://www.zlgmcu.com
5 **
6 **--------------File Info-------------------------------------------------------------------------------
7 ** File name: main.c
8 ** Last modified Date: 2004-09-16
9 ** Last Version: 1.0
10 ** Descriptions: The main() function example template
11 **
12 **------------------------------------------------------------------------------------------------------
13 ** Created by: Chenmingji
14 ** Created date: 2004-09-16
15 ** Version: 1.0
16 ** Descriptions: The original version
17 **
18 **------------------------------------------------------------------------------------------------------
19 ** Modified by: Chenxibing
20 ** Modified date: 2005-01-20
21 ** Version:
22 ** Descriptions: 外部中断唤醒掉电CPU,同时产生中断。
23 **
24 ********************************************************************************************************/
25 #include "config.h"
26
27 //#define BEEP 1 << 7 // P0.7控制BEEP
28
29 extern uint8 RedStart;
30 extern uint32 Reddata;
31 extern uint8 KeyDown;
32 uint16 RedTime;
33 uint16 RedCnt;
34 uint8 Outdata[5];
35 uint8 const ASCII[]={'0','1','2','3','4','5','6','7','8','9'};
36 /*
37 *********************************************************************************************************
38 ** 函数名称 :IRQ_Eint0()
39 ** 函数功能 :外部中断0 EINT0服务程序
40 ** 入口参数 :无。
41 ** 出口参数 :无。
42 *********************************************************************************************************
43 */
44 void IRQ_Eint2 (void) __irq
45 {
46 1 /* 等待外部中断信号恢复为高电平
47 1 若信号保持为低电平,中断标志会一直置位。*/
48 1 if ((EXTINT & 0x04) != 0)
49 1 {
50 2 EXTINT = 0x04; // 清除EINT0中断标志
51 2 T1TCR = 0x00; // 定时器计数器禁止计数
52 2 RedTime = T1TC; // 保存两次下降沿这间的时间
53 2 if((EXTPOLAR & 0x04) == 0x00) // 这次为下降沿中断
54 2 {
55 3 EXTPOLAR = 0x04; // EINT2改为上升沿中断
56 3 } else {
57 3 EXTPOLAR = 0x00; // EINT2改为下降沿中断
58 3 }
59 2 T1TCR = 0x03; // 复位
ARM COMPILER V2.50a, EINT2 16/06/07 08:25:44 PAGE 2
60 2 T1TCR = 0x01; // 定时器计数器开始计数
61 2 if((EXTPOLAR & 0x04) == 0x00) // 这次为下降沿中断
62 2 {
63 3 UART0_SendByte(13);
64 3 UART0_SendByte(10);
65 3 UART0_SendByte(0xb5);
66 3 UART0_SendByte(0xcd);
67 3 } else {
68 3 UART0_SendByte(0xb8);
69 3 UART0_SendByte(0xdf);
70 3 }
71 2
72 2 RedCnt = RedTime;
73 2 if((RedCnt/1000) != 0)
74 2 {
75 3 UART0_SendByte(ASCII[RedCnt/1000]);
76 3 }
77 2 if((RedCnt%1000/100) != 0)
78 2 {
79 3 UART0_SendByte(ASCII[(RedCnt%1000/100)]);
80 3 }
81 2 UART0_SendByte('.');
82 2 UART0_SendByte(ASCII[(RedCnt%100)/10]);
83 2
84 2 UART0_SendByte(ASCII[RedCnt%10]);
85 2 //UART0_SendByte(ASCII[RedTime%10]);
86 2 }
87 1
88 1 VICVectAddr = 0; // 向量中断结束
89 1 }
90
91 /*
92 *********************************************************************************************************
93 ** 函数名称 :main()
94 ** 函数功能 :演示外部中断唤醒掉电的CPU
95 ** 入口参数 :无。
96 ** 出口参数 :无。
97 *********************************************************************************************************
98 */
99 /*
100 int main (void)
101 {
102 PINSEL0 = 0x00000000; // 管脚连接GPIO
103 PINSEL1 = 0x00000001; // P0.16连接EINT0
104 IO0DIR = BEEP; // 设置BEEP控制口为输出,其余输入
105
106 IRQEnable(); // 使能IRQ中断
107
108 // 外部中断0初始化
109 VICIntSelect = 0x00000000; // 设置所有中断分配为IRQ中断
110 VICVectCntl5 = 0x20 | 16; // 分配外部中断0到向量中断0
111 VICVectAddr5 = (uint32)IRQ_Eint2; // 设置中断服务程序地址
112 VICIntEnable = 1 << 16; // 使能EINT2中断
113 //EXTWAKE = 0x01; // 外部中断0唤醒芯片
114 EXTINT = 0x04; // 清除EINT0中断标志
115
116 IO0SET = BEEP;
117
118 while (1)
119 {
120 PCONP = 0x00; // 关闭定时器、RTC、UART等功能部件
121 PCON = 0x02; // 系统进入掉电模式
122
123 // 当系统被唤醒后,取反BEEP控制
124 if ((IO0SET & BEEP) == 0) IO0SET = BEEP;
125 else IO0CLR = BEEP;
ARM COMPILER V2.50a, EINT2 16/06/07 08:25:44 PAGE 3
126 }
127
128 return (0);
129 }*/
130 /********************************************************************************************************
-*
131 ** End Of File
132 ********************************************************************************************************/
ARM COMPILER V2.50a, EINT2 16/06/07 08:25:44 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (UART0_SendByte?T)
EXTERN CODE32 (UART0_SendByte?A)
EXTERN CODE32 (?C?SDIV?A)
*** PUBLICS:
PUBLIC IRQ_Eint2?A
PUBLIC RedTime
PUBLIC RedCnt
PUBLIC Outdata
PUBLIC ASCII
*** DATA SEGMENT '?DT0?EINT2':
00000000 RedTime:
00000000 DS 2
00000002 RedCnt:
00000002 DS 2
00000004 Outdata:
00000004 DS 5
*** DATA SEGMENT '?CON?EINT2':
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -