📄 main.lst
字号:
ARM COMPILER V2.53, main 19/11/06 17:17:27 PAGE 1
ARM COMPILER V2.53, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\ARM\BIN\CA.exe main.c THUMB DEFINE(ADUC7026) DEBUG TABS(4)
stmt level source
1 #ifdef ADUC7020
#include <ADUC7020.H>
#endif
4 #ifdef ADUC7021
#include <ADUC7021.H>
#endif
7 #ifdef ADUC7024
#include <ADUC7024.H>
#endif
10 #ifdef ADUC7026
11 #include <ADUC7026.H>
12 #endif
13
14 #define CLOCK 22544384 // CPU configured for 22.544384 MHz clock
15 #define T0_Freq 200 // Timer 0 Reload Frequency
16 #define T0_LD ((unsigned short )(CLOCK / 16 / T0_Freq))
17
18 /*-----------------------------------------------
19 Sine Wave Table
20 -----------------------------------------------*/
21 unsigned char sintab [] = {
22 0x00, 0x01, 0x03, 0x04, 0x06, 0x07, 0x09, 0x0A,
23 0x0C, 0x0E, 0x0F, 0x11, 0x12, 0x14, 0x15, 0x17,
24 0x18, 0x1A, 0x1C, 0x1D, 0x1F, 0x20, 0x22, 0x23,
25 0x25, 0x26, 0x28, 0x29, 0x2B, 0x2C, 0x2E, 0x2F,
26 0x30, 0x32, 0x33, 0x35, 0x36, 0x38, 0x39, 0x3A,
27 0x3C, 0x3D, 0x3F, 0x40, 0x41, 0x43, 0x44, 0x45,
28 0x47, 0x48, 0x49, 0x4A, 0x4C, 0x4D, 0x4E, 0x4F,
29 0x51, 0x52, 0x53, 0x54, 0x55, 0x57, 0x58, 0x59,
30 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61,
31 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
32 0x6A, 0x6B, 0x6C, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
33 0x70, 0x71, 0x72, 0x73, 0x73, 0x74, 0x75, 0x75,
34 0x76, 0x76, 0x77, 0x77, 0x78, 0x79, 0x79, 0x7A,
35 0x7A, 0x7A, 0x7B, 0x7B, 0x7C, 0x7C, 0x7C, 0x7D,
36 0x7D, 0x7D, 0x7E, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F,
37 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F };
38
39
40 static unsigned char DAC0_next_out;
41 static unsigned char DAC1_next_out;
42 static unsigned char DAC2_next_out;
43 static unsigned char DAC3_next_out;
44 static unsigned int i = 0x00;
45
46 void IRQ_Handler (void) __irq {
47 1 if (IRQSIG & 0x00000004) { /* Timer0 Interrupt */
48 2 /*-----------------------------------------------
49 2 Output D/A Value
50 2 -----------------------------------------------*/
51 2 DAC0DAT = DAC0_next_out << 20; /* Convert last D/A value */
52 2 DAC1DAT = DAC1_next_out << 20;
53 2 DAC2DAT = DAC2_next_out << 20;
54 2 DAC3DAT = DAC3_next_out << 20;
55 2
56 2 /*-----------------------------------------------
57 2 Calculate next D/A Value
58 2 -----------------------------------------------*/
59 2 if (i++ >= 511) i = 0;
ARM COMPILER V2.53, main 19/11/06 17:17:27 PAGE 2
60 2
61 2 if (i >= 384){
62 3
63 3 DAC0_next_out = 127 - sintab[127 - (i % 128)]; /* 180 - 270 quadrant */
64 3 DAC1_next_out = 1023 - 2*i;
65 3 DAC2_next_out = 0;
66 3 DAC3_next_out = i - 255;
67 3 }
68 2 else if (i >= 256){
69 3
70 3 DAC0_next_out = 127 - sintab[i % 128]; /* 90 - 180 quadrant */
71 3 DAC1_next_out = (i - 256) * 2;
72 3 DAC2_next_out = 255;
73 3 DAC3_next_out = i - 255;
74 3 }
75 2 else if (i >= 128) {
76 3 DAC0_next_out = 128 + sintab[127 - (i % 128)]; /* 0 - 90 quadrant */
77 3 DAC1_next_out = 511 - i * 2;
78 3 DAC2_next_out = 255;
79 3 DAC3_next_out = i;
80 3 }
81 2 else{
82 3 DAC0_next_out = 128 + sintab[i]; /* 270 - 0 quadrant */
83 3 DAC1_next_out = i * 2;
84 3 DAC2_next_out = 0;
85 3 DAC3_next_out = i;
86 3 }
87 2 T0CLRI = 1; /* Clear Timer 0 interrupt */
88 2 }
89 1 }
90
91 void main (void)
92 {
93 1 /*-------------------------------------
94 1 Configure the D/A converter:
95 1 normal mode, 0-VDD range,
96 1 -------------------------------------*/
97 1 DAC0CON = 0x13;
98 1 DAC1CON = 0x13;
99 1 DAC2CON = 0x13;
100 1 DAC3CON = 0x13;
101 1
102 1
103 1 /*-------------------------------------
104 1 Initialize Timer 0 Interrupt
105 1 -------------------------------------*/
106 1 IRQEN = 0x00000004; /* Configure Timer 0 */
107 1 T0LD = T0_LD; /* Timer reload value */
108 1 T0CON = 0xC0; /* Enable Timer 0, Mode: periodic, prescaler = 1 */
109 1
110 1 while (1){
111 2 }
112 1 }
113
ARM COMPILER V2.53, main 19/11/06 17:17:27 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC IRQ_Handler?A
PUBLIC main
PUBLIC sintab
*** DATA SEGMENT '?DT0?main':
00000000 i:
00000000 BEGIN_INIT
00000000 00000000 DD 0x0
00000004 END_INIT
00000004 sintab:
00000004 BEGIN_INIT
00000004 00 DB 0x0
00000005 01 DB 0x1
00000006 03 DB 0x3
00000007 04 DB 0x4
00000008 06 DB 0x6
00000009 07 DB 0x7
0000000A 09 DB 0x9
0000000B 0A DB 0xA
0000000C 0C DB 0xC
0000000D 0E DB 0xE
0000000E 0F DB 0xF
0000000F 11 DB 0x11
00000010 12 DB 0x12
00000011 14 DB 0x14
00000012 15 DB 0x15
00000013 17 DB 0x17
00000014 18 DB 0x18
00000015 1A DB 0x1A
00000016 1C DB 0x1C
00000017 1D DB 0x1D
00000018 1F DB 0x1F
00000019 20 DB 0x20
0000001A 22 DB 0x22
0000001B 23 DB 0x23
0000001C 25 DB 0x25
0000001D 26 DB 0x26
0000001E 28 DB 0x28
0000001F 29 DB 0x29
00000020 2B DB 0x2B
00000021 2C DB 0x2C
00000022 2E DB 0x2E
00000023 2F DB 0x2F
00000024 30 DB 0x30
00000025 32 DB 0x32
00000026 33 DB 0x33
00000027 35 DB 0x35
00000028 36 DB 0x36
00000029 38 DB 0x38
0000002A 39 DB 0x39
0000002B 3A DB 0x3A
0000002C 3C DB 0x3C
0000002D 3D DB 0x3D
0000002E 3F DB 0x3F
0000002F 40 DB 0x40
00000030 41 DB 0x41
00000031 43 DB 0x43
00000032 44 DB 0x44
00000033 45 DB 0x45
ARM COMPILER V2.53, main 19/11/06 17:17:27 PAGE 4
00000034 47 DB 0x47
00000035 48 DB 0x48
00000036 49 DB 0x49
00000037 4A DB 0x4A
00000038 4C DB 0x4C
00000039 4D DB 0x4D
0000003A 4E DB 0x4E
0000003B 4F DB 0x4F
0000003C 51 DB 0x51
0000003D 52 DB 0x52
0000003E 53 DB 0x53
0000003F 54 DB 0x54
00000040 55 DB 0x55
00000041 57 DB 0x57
00000042 58 DB 0x58
00000043 59 DB 0x59
00000044 5A DB 0x5A
00000045 5B DB 0x5B
00000046 5C DB 0x5C
00000047 5D DB 0x5D
00000048 5E DB 0x5E
00000049 5F DB 0x5F
0000004A 60 DB 0x60
0000004B 61 DB 0x61
0000004C 62 DB 0x62
0000004D 63 DB 0x63
0000004E 64 DB 0x64
0000004F 65 DB 0x65
00000050 66 DB 0x66
00000051 67 DB 0x67
00000052 68 DB 0x68
00000053 69 DB 0x69
00000054 6A DB 0x6A
00000055 6B DB 0x6B
00000056 6C DB 0x6C
00000057 6C DB 0x6C
00000058 6D DB 0x6D
00000059 6E DB 0x6E
0000005A 6F DB 0x6F
0000005B 70 DB 0x70
0000005C 70 DB 0x70
0000005D 71 DB 0x71
0000005E 72 DB 0x72
0000005F 73 DB 0x73
00000060 73 DB 0x73
00000061 74 DB 0x74
00000062 75 DB 0x75
00000063 75 DB 0x75
00000064 76 DB 0x76
00000065 76 DB 0x76
00000066 77 DB 0x77
00000067 77 DB 0x77
00000068 78 DB 0x78
00000069 79 DB 0x79
0000006A 79 DB 0x79
0000006B 7A DB 0x7A
0000006C 7A DB 0x7A
0000006D 7A DB 0x7A
0000006E 7B DB 0x7B
0000006F 7B DB 0x7B
00000070 7C DB 0x7C
00000071 7C DB 0x7C
00000072 7C DB 0x7C
00000073 7D DB 0x7D
00000074 7D DB 0x7D
00000075 7D DB 0x7D
ARM COMPILER V2.53, main 19/11/06 17:17:27 PAGE 5
00000076 7E DB 0x7E
00000077 7E DB 0x7E
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -