?? main.lis
字號:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\mysoft\DH980\main.c
0000 .dbfunc e delay_loop _delay_loop fV
0000 ; i -> R16,R17
.even
0000 _delay_loop::
0000 .dbline -1
0000 .dbline 15
0000 ; //ICC-AVR application builder : 2007-5-17 下午 09:24:21
0000 ; // Target : M169
0000 ; // Crystal: 4.0000Mhz
0000 ; #define _MAIN_C
0000 ; #include <iom169v.h>
0000 ; #include <macros.h>
0000 ; #include <stdio.h>
0000 ; //#include "LTC2449.h"
0000 ; #include "main.h"
0000 ; #include "uart.h"
0000 ; #include "cs5532.h"
0000 ; #define average_quantity 15 //平均個數
0000 ;
0000 ; void delay_loop(unsigned int i)
0000 ; {
0000 02C0 xjmp L3
0002 L2:
0002 .dbline 16
0002 .dbline 16
0002 0150 subi R16,1
0004 1040 sbci R17,0
0006 .dbline 16
0006 L3:
0006 .dbline 16
0006 ; while(i){i--;}
0006 0030 cpi R16,0
0008 0107 cpc R16,R17
000A D9F7 brne L2
000C X0:
000C .dbline -2
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbsym r i 16 i
000E .dbend
000E .dbfunc e port_init _port_init fV
.even
000E _port_init::
000E .dbline -1
000E .dbline 19
000E ; }
000E ; void port_init(void)
000E ; {
000E .dbline 20
000E ; PORTA = 0xFF;
000E 8FEF ldi R24,255
0010 82B9 out 0x2,R24
0012 .dbline 21
0012 ; DDRA = 0xFF;
0012 81B9 out 0x1,R24
0014 .dbline 22
0014 ; PORTB = 0x7F;
0014 8FE7 ldi R24,127
0016 85B9 out 0x5,R24
0018 .dbline 23
0018 ; DDRB = 0x80;
0018 80E8 ldi R24,128
001A 84B9 out 0x4,R24
001C .dbline 24
001C ; PORTC = 0xFF;
001C 8FEF ldi R24,255
001E 88B9 out 0x8,R24
0020 .dbline 25
0020 ; DDRC = 0xFF;
0020 87B9 out 0x7,R24
0022 .dbline 26
0022 ; PORTD = 0xFF;
0022 8BB9 out 0xb,R24
0024 .dbline 27
0024 ; DDRD = 0xFF;
0024 8AB9 out 0xa,R24
0026 .dbline 28
0026 ; PORTE = 0xA7;
0026 87EA ldi R24,167
0028 8EB9 out 0xe,R24
002A .dbline 29
002A ; DDRE = 0x58;
002A 88E5 ldi R24,88
002C 8DB9 out 0xd,R24
002E .dbline 30
002E ; PORTF = 0x0F;
002E 8FE0 ldi R24,15
0030 81BB out 0x11,R24
0032 .dbline 31
0032 ; DDRF = 0x0F;
0032 80BB out 0x10,R24
0034 .dbline 32
0034 ; PORTG = 0x17;
0034 87E1 ldi R24,23
0036 84BB out 0x14,R24
0038 .dbline 33
0038 ; DDRG = 0x1F;
0038 8FE1 ldi R24,31
003A 83BB out 0x13,R24
003C .dbline -2
003C L5:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbend
003E .dbfunc e timer1_init _timer1_init fV
.even
003E _timer1_init::
003E .dbline -1
003E .dbline 41
003E ; }
003E ;
003E ; //TIMER1 initialize - prescale:1
003E ; // WGM: 0) Normal, TOP=0xFFFF
003E ; // desired value: 1mSec
003E ; // actual value: 1.000mSec (0.0%)
003E ; void timer1_init(void)
003E ; {
003E .dbline 42
003E ; TCCR1B = 0x00; //stop
003E 2224 clr R2
0040 20928100 sts 129,R2
0044 .dbline 43
0044 ; TCNT1H = 0xD4; //setup
0044 84ED ldi R24,212
0046 80938500 sts 133,R24
004A .dbline 44
004A ; TCNT1L = 0xCE;
004A 8EEC ldi R24,206
004C 80938400 sts 132,R24
0050 .dbline 45
0050 ; OCR1AH = 0x2B;
0050 8BE2 ldi R24,43
0052 80938900 sts 137,R24
0056 .dbline 46
0056 ; OCR1AL = 0x32;
0056 82E3 ldi R24,50
0058 80938800 sts 136,R24
005C .dbline 47
005C 8BE2 ldi R24,43
005E 80938B00 sts 139,R24
0062 .dbline 48
0062 ; OCR1BL = 0x32;
0062 82E3 ldi R24,50
0064 80938A00 sts 138,R24
0068 .dbline 49
0068 ; ICR1H = 0x2B;
0068 8BE2 ldi R24,43
006A 80938700 sts 135,R24
006E .dbline 50
006E ; ICR1L = 0x32;
006E 82E3 ldi R24,50
0070 80938600 sts 134,R24
0074 .dbline 51
0074 ; TCCR1A = 0x00;
0074 20928000 sts 128,R2
0078 .dbline 52
0078 ; TCCR1C = 0x00;
0078 20928200 sts 130,R2
007C .dbline 53
007C ; TCCR1B = 0x01; //start Timer
007C 81E0 ldi R24,1
007E 80938100 sts 129,R24
0082 .dbline -2
0082 L6:
0082 .dbline 0 ; func end
0082 0895 ret
0084 .dbend
.area vector(rom, abs)
.org 36
0024 0C944200 jmp _timer1_ovf_isr
.area text(rom, con, rel)
0084 .dbfile E:\mysoft\DH980\main.c
0084 .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
0084 _timer1_ovf_isr::
0084 8A93 st -y,R24
0086 9A93 st -y,R25
0088 EA93 st -y,R30
008A 8FB7 in R24,0x3f
008C 8A93 st -y,R24
008E .dbline -1
008E .dbline 58
008E .dbline 59
008E 84ED ldi R24,212
0090 80938500 sts 133,R24
0094 .dbline 60
0094 8EEC ldi R24,206
0096 80938400 sts 132,R24
009A .dbline 61
009A 80912F01 lds R24,_mcu_loop_time
009E 8F5F subi R24,255 ; addi 1
00A0 80932F01 sts _mcu_loop_time,R24
00A4 .dbline 62
00A4 80910801 lds R24,_load_time
00A8 90910901 lds R25,_load_time+1
00AC 8031 cpi R24,16
00AE E7E2 ldi R30,39
00B0 9E07 cpc R25,R30
00B2 28F4 brsh L8
00B4 .dbline 63
00B4 .dbline 64
00B4 0196 adiw R24,1
00B6 90930901 sts _load_time+1,R25
00BA 80930801 sts _load_time,R24
00BE .dbline 65
00BE L8:
00BE .dbline -2
00BE L7:
00BE 8991 ld R24,y+
00C0 8FBF out 0x3f,R24
00C2 E991 ld R30,y+
00C4 9991 ld R25,y+
00C6 8991 ld R24,y+
00C8 .dbline 0 ; func end
00C8 1895 reti
00CA .dbend
00CA .dbfunc e init_devices _init_devices fV
.even
00CA _init_devices::
00CA .dbline -1
00CA .dbline 70
00CA ; }
00CA ;
00CA ; #pragma interrupt_handler timer1_ovf_isr:10
00CA ; void timer1_ovf_isr(void)
00CA ; {
00CA ; TCNT1H = 0xD4; //setup
00CA ; TCNT1L = 0xCE;
00CA ; mcu_loop_time++; //主程序20mS循環用
00CA ; if (load_time <10000)
00CA ; {
00CA ; load_time++; //下載數據定時用
00CA ; }
00CA ; }
00CA ;
00CA ; //call this routine to initialize all peripherals
00CA ; void init_devices(void)
00CA ; {
00CA .dbline 72
00CA ; //stop errant interrupts until set up
00CA ; CLI(); //disable all interrupts
00CA F894 cli
00CC .dbline 73
00CC ; port_init();
00CC A0DF xcall _port_init
00CE .dbline 74
00CE ; timer1_init();
00CE B7DF xcall _timer1_init
00D0 .dbline 75
00D0 ; uart0_init();
00D0 0E940000 xcall _uart0_init
00D4 .dbline 77
00D4 ;
00D4 ; TIMSK0 = 0x00; //timer interrupt sources
00D4 2224 clr R2
00D6 20926E00 sts 110,R2
00DA .dbline 78
00DA ; TIMSK1 = 0x01; //timer interrupt sources
00DA 81E0 ldi R24,1
00DC 80936F00 sts 111,R24
00E0 .dbline 79
00E0 ; TIMSK2 = 0x00; //timer interrupt sources
00E0 20927000 sts 112,R2
00E4 .dbline 80
00E4 ; PCMSK0 = 0x00; //pin change mask
00E4 20926B00 sts 107,R2
00E8 .dbline 81
00E8 ; PCMSK1 = 0x00; //pin change mask
00E8 20926C00 sts 108,R2
00EC .dbline 82
00EC ; EICRA = 0x00; //int0 setup
00EC 20926900 sts 105,R2
00F0 .dbline 83
00F0 ; SEI(); //re-enable interrupts
00F0 7894 sei
00F2 .dbline -2
00F2 L10:
00F2 .dbline 0 ; func end
00F2 0895 ret
00F4 .dbend
.area data(ram, con, rel)
0000 .dbfile E:\mysoft\DH980\main.c
0000 L12:
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile E:\mysoft\DH980\main.c
.area bss(ram, con, rel)
0000 .dbfile E:\mysoft\DH980\main.c
0000 L13:
0000 .blkb 240
.area text(rom, con, rel)
00F4 .dbfile E:\mysoft\DH980\main.c
00F4 .dbfunc e AD_conversion _AD_conversion fV
00F4 .dbsym s average L13 A[240:8:15]i
00F4 .dbsym s average_l L12 c
00F4 ; c -> R12
00F4 ; unlikeliness -> R14
00F4 ; sum -> y+0
00F4 ; j -> y+4
00F4 ; jj -> R10
.even
00F4 _AD_conversion::
00F4 0E940000 xcall push_gset5
00F8 2597 sbiw R28,5
00FA .dbline -1
00FA .dbline 88
00FA ; //all peripherals are now initialized
00FA ; }
00FA ; //************讀出8通道AD值*********************
00FA ; void AD_conversion()
00FA ; {
00FA .dbline 94
00FA ; unsigned char j, jj, c;//通道號,平均值序號,通道號
00FA ; unsigned long sum;
00FA ; static unsigned char average_l=0;//平均值個數
00FA ; static unsigned int average[8][average_quantity]; //求平均數
00FA ; unsigned char unlikeliness; //內部循環,1mS檢測
00FA ; for (j=0; j<5; j++)
00FA 0024 clr R0
00FC 0C82 std y+4,R0
00FE 6AC0 xjmp L17
0100 L14:
0100 .dbline 95
0100 ; {
0100 .dbline 96
0100 ; unlikeliness = mcu_loop_time;
0100 E0902F01 lds R14,_mcu_loop_time
0104 .dbline 97
0104 ; c=j;
0104 CC80 ldd R12,y+4
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -