📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\myavrproject\icc\twi\main.c
0000 .dbfunc e watchdog_init _watchdog_init fV
.even
0000 _watchdog_init::
0000 .dbline -1
0000 .dbline 20
0000 ; //ICC-AVR application builder : 2007-1-8 15:26:42
0000 ; // Target : M8
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ; #include <stdio.h>
0000 ;
0000 ; #include "uart.h"
0000 ; #include "function.h"
0000 ; #include "port.h"
0000 ; #include "twi.h"
0000 ;
0000 ; //
0000 ;
0000 ;
0000 ; //Watchdog initialize
0000 ; // prescale: 2048K
0000 ; void watchdog_init(void)
0000 ; {
0000 .dbline 21
0000 ; WDR(); //this prevents a timout on enabling
0000 A895 wdr
0002 .dbline 22
0002 ; WDTCR = 0x0f; //WATCHDOG ENABLED - dont forget to issue WDRs
0002 8FE0 ldi R24,15
0004 81BD out 0x21,R24
0006 .dbline 26
0006 ;
0006 ; //close watch dog
0006 ; //set WDCE and WDE
0006 ; WDTCR |= (1<<WDCE) | (1<<WDE);
0006 81B5 in R24,0x21
0008 8861 ori R24,24
000A 81BD out 0x21,R24
000C .dbline 28
000C ; //close WDT
000C ; WDTCR = 0x00;
000C 2224 clr R2
000E 21BC out 0x21,R2
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbend
0012 .dbfunc e init_devices _init_devices fV
.even
0012 _init_devices::
0012 .dbline -1
0012 .dbline 33
0012 ;
0012 ; }
0012 ; //call this routine to initialize all peripherals
0012 ; void init_devices(void)
0012 ; {
0012 .dbline 35
0012 ; //stop errant interrupts until set up
0012 ; CLI(); //disable all interrupts
0012 F894 cli
0014 .dbline 36
0014 ; port_init();
0014 00D0 rcall _port_init
0016 .dbline 37
0016 ; watchdog_init();
0016 F4DF rcall _watchdog_init
0018 .dbline 38
0018 ; twi_init();
0018 00D0 rcall _twi_init
001A .dbline 39
001A ; uart0_init();
001A 00D0 rcall _uart0_init
001C .dbline 42
001C ;
001C ;
001C ; MCUCR = 0x00;
001C 2224 clr R2
001E 25BE out 0x35,R2
0020 .dbline 43
0020 ; GICR = 0x00;
0020 2BBE out 0x3b,R2
0022 .dbline 44
0022 ; TIMSK = 0x00; //timer interrupt sources
0022 29BE out 0x39,R2
0024 .dbline 45
0024 ; SEI(); //re-enable interrupts
0024 7894 sei
0026 .dbline -2
0026 L2:
0026 .dbline 0 ; func end
0026 0895 ret
0028 .dbend
0028 .dbfunc e main _main fV
.even
0028 _main::
0028 2197 sbiw R28,1
002A .dbline -1
002A .dbline 50
002A ; //all peripherals are now initialized
002A ; }
002A ; //
002A ; void main(void)
002A ; {
002A .dbline 52
002A ; //initial device
002A ; init_devices();
002A F3DF rcall _init_devices
002C 12C0 rjmp L5
002E L4:
002E .dbline 56
002E ; //insert your functional code here...
002E ;
002E ; while(1)
002E ; {
002E .dbline 58
002E ;
002E ; strTWI.STATUS=TW_OK;
002E 81E0 ldi R24,1
0030 80930000 sts _strTWI,R24
0034 .dbline 59
0034 ; putchar(TWI_RW(0x30+TW_WRITE,&ORGDATA[0],8));
0034 88E0 ldi R24,8
0036 8883 std y+0,R24
0038 20E0 ldi R18,<_ORGDATA
003A 30E0 ldi R19,>_ORGDATA
003C 00E3 ldi R16,48
003E 00D0 rcall _TWI_RW
0040 00D0 rcall _putchar
0042 .dbline 61
0042 ; // while(strTWI.STATUS==TW_BUSY);//wait
0042 ; if (strTWI.STATUS==TW_FAIL)
0042 80910000 lds R24,_strTWI
0046 8230 cpi R24,2
0048 11F4 brne L7
004A .dbline 62
004A ; {
004A .dbline 64
004A ; //operate faile
004A ; putchar(0xff);
004A 0FEF ldi R16,255
004C 00D0 rcall _putchar
004E .dbline 65
004E ; }
004E L7:
004E .dbline 66
004E 00E1 ldi R16,16
0050 00D0 rcall _delay_100ms
0052 .dbline 70
0052 L5:
0052 .dbline 55
0052 EDCF rjmp L4
0054 X0:
0054 .dbline -2
0054 L3:
0054 2196 adiw R28,1
0056 .dbline 0 ; func end
0056 0895 ret
0058 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -