multint.lst
来自「ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核」· LST 代码 · 共 124 行
LST
124 行
ARM COMPILER V0.20, MultInt 20/07/05 10:54:22 PAGE 1
ARM COMPILER V0.20, COMPILATION OF MODULE MultInt
OBJECT MODULE PLACED IN MultInt.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe MultInt.c THUMB DEBUG TABS(4)
stmt level source
1 /*********************************************************************
2
3 Author : ADI - Apps www.analog.com/MicroConverter
4
5 Date : Feb. 2004
6
7 File : MultInt.c
8
9 Hardware : ADuC7026
10
11 Description : Example program using two IRQs and 1 FIQ.
12 Timer1 causes an IRQ which compliments P4.2.
13 XIRQ0 causes an IRQ which compliments P4.2.
14 ADC causes an FIQ which outputs the value on ADC0
15 to DAC1.
16
17 *********************************************************************/
18
19 #include <ADuC7026.h> // Include ADuC7026 Header File
20
21 // Function Prototypes
22
23 void IRQ_Handler(void) __irq; // IRQ Function Prototype
24 void FIQ_Handler(void) __fiq; // FIQ Function Prototype
25 void ADCpoweron(int);
26 void delay(int);
27
28 void DemoConfig(void);
29 long ADCconvert(void);
30 void My_IRQ_Function(void);
31
32 // MAIN PROGRAM....
33
34 int main (void) {
35 1
36 1 DemoConfig(); // set up ADC, DAC, & reference
37 1
38 1
39 1 GP0CON = 0x00100000; // Enable ADCbusy on Pin 0.5
40 1 GP4DAT = 0x04000000; // Configure P4.2 as output
41 1 GP3DAT = 0xff000000; // Configure port 3 as output
42 1 // Timer 1 configuration
43 1 T1LD = 0x20000; // Counter Value
44 1 T1CON = 0xC4; // Enabled,Periodic,Binary and CLK/16
45 1
46 1 IRQEN = XIRQ0_BIT+GP_TIMER_BIT; // Enable XIRQ0 and Timer1 IRQ
47 1 FIQEN = ADC_BIT; // Enable ADC FIQ
48 1
49 1 while(1)
50 1 {
51 2 GP3DAT ^= 0x00ff0000; // Compliment P3
52 2 ADCCON = 0x4E3; // single conversion, ADC Speed = 1 MSPS
53 2 delay(0x2000); // Delay Blinking of P3
54 2 }
55 1
56 1 return 0 ;
57 1 }
58
59 void delay (int length)
ARM COMPILER V0.20, MultInt 20/07/05 10:54:22 PAGE 2
60 {
61 1 while (length >=0)
62 1 length--;
63 1 }
64
65 void DemoConfig(void) { // ADC, DAC and Reference configuration
66 1 ADCpoweron(20000); // power on ADC
67 1 ADCCP = 0x00; // conversion on ADC0
68 1 DAC1CON = 0x13; // AGND-AVDD range
69 1 REFCON = 0x01; // internal 2.5V reference
70 1 return;
71 1 }
72
73 void ADCpoweron(int time)
74 {
75 1 ADCCON = 0x20; // power-on the ADC
76 1 while (time >=0) // wait for ADC to be fully powered on
77 1 time--;
78 1 }
79
80
81 /********************************************************************/
82 /* */
83 /* Interrupt Service Rountine */
84 /* */
85 /********************************************************************/
86
87
88 void IRQ_Handler() __irq // example with two IRQ
89 {
90 1 if ((IRQSTA & GP_TIMER_BIT) != 0) // Timer1 IRQ?
91 1 {
92 2 T1CLRI = 0; // Clear Timer IRQ
93 2 GP4DAT ^= 0x00040000; // Complement P4.2
94 2 }
95 1 if ((IRQSTA & XIRQ0_BIT) != 0) // external IRQ?
96 1 {
97 2 GP4DAT ^= 0x00040000; // Complement P4.2
98 2 while(GP0DAT & 0x00010){} // wait for XIRQ to be low again
99 2 }
100 1 return ;
101 1 }
102
103 void FIQ_Handler() __fiq // example with one FIQ
104 {
105 1 if ((FIQSTA & ADC_BIT) != 0) // ADC FIQ ?
106 1 {
107 2 DAC1DAT = ADCDAT; // Output ADC0 Value onto DAC1
108 2 } // required to clear ADC interrupt
109 1 return ;
110 1 }
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?