📄 timer.lst
字号:
ARM COMPILER V2.50a, Timer 25/04/06 04:24:57 PAGE 1
ARM COMPILER V2.50a, COMPILATION OF MODULE Timer
OBJECT MODULE PLACED IN Timer.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe Timer.c ARM BROWSE DEBUG TABS(4)
stmt level source
1 /**********************************************************************************************
2 Timer.c file
3
4 定时器的相关函数
5
6 作者:Computer-lov
7 建立日期:2006-4-25
8 修改日期:2006-4-25
9 版本:V1.0
10 版权所有,盗版必究。
11 任何技术问题可到我的博客上留言: http://computer00.21ic.org
12 Copyright(C) Computer-lov 2006-2016
13 All rights reserved
14 **********************************************************************************************/
15
16 #include <ADuC7027.H>
17 #include "Timer.h"
18 #include "interrupt.h"
19
20 /*********************************************************************************************/
21 void Timer0Init(void)
22 {
23 1 T0LD=163200/128-1; // 1/128秒中断一次
24 1 T0CON=0xC8; // Enable Timer0; Periodic mode; FCoreClock/256=163200Hz
25 1 FIQEN |=TIMER0; //TIMER0中断分配为FIQ
26 1 }
27 ///////////////////////////////////////////////////////////////////////////////////////////////
28
29
30 /*********************************************************************************************/
31 void Timer1Init(void)
32 {
33 1 GP0DAT |=(1<<(6+24)); //P0.6设置为输出口,由定时器0提供一个128Hz的时钟信号
34 1 T1LD=0X00000000; //重装0
35 1 T1CON=0x7E0; //P0.6 raising edge triggered;Count up mode;Enable Timer1; Periodic mode;
36 1 //23 Hours to 0 hour format;SourceClock/
37 1 IRQEN |=TIMER1; //TIMER1中断分配为IRQ
38 1 }
39 ///////////////////////////////////////////////////////////////////////////////////////////////
40
41
42 /*********************************************************************************************/
43 void Timer2Init(void)
44 {
45 1 T2LD=163200*0.04-1; //40ms中断一次
46 1 T2CON=0x6C8; //Core Clk;Count Down mode;Enable Timer2; Periodic mode;Binary Format;SourceClk=FCoreClock/
-256=163200Hz
47 1 IRQEN |=TIMER2; //TIMER2中断分配为IRQ
48 1 }
49 ///////////////////////////////////////////////////////////////////////////////////////////////
50
51
52 /*********************************************************************************************/
53 void Timer3Init(void)
54 {
55 1 T3LD=32768*0.2-1; //200ms中断一次
56 1 T3CON=0x0C2; //Count Down Mode;Enable Timer3; Periodic mode;WatchDog Disenable;SourceClk/1=32768Hz;IRQ
- Option
57 1 IRQEN |=TIMER3; //TIMER3中断分配为IRQ
ARM COMPILER V2.50a, Timer 25/04/06 04:24:57 PAGE 2
58 1 }
59 ///////////////////////////////////////////////////////////////////////////////////////////////
ARM COMPILER V2.50a, Timer 25/04/06 04:24:57 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** PUBLICS:
PUBLIC Timer0Init?A
PUBLIC Timer1Init?A
PUBLIC Timer2Init?A
PUBLIC Timer3Init?A
*** CODE SEGMENT '?PR?Timer0Init?A?Timer':
23: T0LD=163200/128-1; // 1/128秒中断一次
00000000 E5101000 LDR R1,=0x4FA
00000004 E5100000 LDR R0,=0xFFFF0300
00000008 E5801000 STR R1,[R0,#0x0]
24: T0CON=0xC8; // Enable Timer0; Periodic mode; FCoreClock/256=163200Hz
0000000C E3A010C8 MOV R1,#0xC8
00000010 E5100000 LDR R0,=0xFFFF0308
00000014 E5801000 STR R1,[R0,#0x0]
25: FIQEN |=TIMER0; //TIMER0中断分配为FIQ
00000018 E5100000 LDR R0,=0xFFFF0108
0000001C E5901000 LDR R1,[R0,#0x0]
00000020 E3811004 ORR R1,R1,#0x0004
00000024 E5801000 STR R1,[R0,#0x0]
26: }
00000028 E12FFF1E BX R14
0000002C ENDP ; 'Timer0Init?A'
*** CODE SEGMENT '?PR?Timer1Init?A?Timer':
33: GP0DAT |=(1<<(6+24)); //P0.6设置为输出口,由定时器0提供一个128Hz的时钟信号
00000000 E5100000 LDR R0,=0xFFFFF420
00000004 E5901000 LDR R1,[R0,#0x0]
00000008 E3811101 ORR R1,R1,#0x40000000
0000000C E5801000 STR R1,[R0,#0x0]
34: T1LD=0X00000000; //重装0
00000010 E3A01000 MOV R1,#0x0
00000014 E5100000 LDR R0,=0xFFFF0320
00000018 E5801000 STR R1,[R0,#0x0]
35: T1CON=0x7E0; //P0.6 raising edge triggered;Count up mode;Enable Timer1; Periodic mode;
0000001C E3A01E7E MOV R1,#0x7E0
00000020 E5100000 LDR R0,=0xFFFF0328
00000024 E5801000 STR R1,[R0,#0x0]
37: IRQEN |=TIMER1; //TIMER1中断分配为IRQ
00000028 E5100000 LDR R0,=0xFFFF0008
0000002C E5901000 LDR R1,[R0,#0x0]
00000030 E3811008 ORR R1,R1,#0x0008
00000034 E5801000 STR R1,[R0,#0x0]
38: }
00000038 E12FFF1E BX R14
0000003C ENDP ; 'Timer1Init?A'
*** CODE SEGMENT '?PR?Timer2Init?A?Timer':
45: T2LD=163200*0.04-1; //40ms中断一次
00000000 E5101000 LDR R1,=0x197F
00000004 E5100000 LDR R0,=0xFFFF0340
00000008 E5801000 STR R1,[R0,#0x0]
46: T2CON=0x6C8; //Core Clk;Count Down mode;Enable Timer2; Periodic mode;Binary Format;SourceClk=FCoreClock/256=1632
-00Hz
0000000C E5101000 LDR R1,=0x6C8
00000010 E5100000 LDR R0,=0xFFFF0348
00000014 E5801000 STR R1,[R0,#0x0]
47: IRQEN |=TIMER2; //TIMER2中断分配为IRQ
00000018 E5100000 LDR R0,=0xFFFF0008
0000001C E5901000 LDR R1,[R0,#0x0]
00000020 E3811010 ORR R1,R1,#0x0010
00000024 E5801000 STR R1,[R0,#0x0]
48: }
00000028 E12FFF1E BX R14
0000002C ENDP ; 'Timer2Init?A'
ARM COMPILER V2.50a, Timer 25/04/06 04:24:57 PAGE 4
*** CODE SEGMENT '?PR?Timer3Init?A?Timer':
55: T3LD=32768*0.2-1; //200ms中断一次
00000000 E5101000 LDR R1,=0x1998
00000004 E5100000 LDR R0,=0xFFFF0360
00000008 E5801000 STR R1,[R0,#0x0]
56: T3CON=0x0C2; //Count Down Mode;Enable Timer3; Periodic mode;WatchDog Disenable;SourceClk/1=32768Hz;IRQ Option
0000000C E3A010C2 MOV R1,#0xC2
00000010 E5100000 LDR R0,=0xFFFF0368
00000014 E5801000 STR R1,[R0,#0x0]
57: IRQEN |=TIMER3; //TIMER3中断分配为IRQ
00000018 E5100000 LDR R0,=0xFFFF0008
0000001C E5901000 LDR R1,[R0,#0x0]
00000020 E3811020 ORR R1,R1,#0x0020
00000024 E5801000 STR R1,[R0,#0x0]
58: }
00000028 E12FFF1E BX R14
0000002C ENDP ; 'Timer3Init?A'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -