⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runtime.lis

📁 使用iccavr的例子
💻 LIS
字号:
                         .module runtime.c
                         .text
 0000                   .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
                         .area vector(abs)
                         .org 56
 0038 0C941200          jmp _RuntimeInterrupt
                         .area text
 0000                   .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
 0000                   .dbfunc s RuntimeInitialise _RuntimeInitialise fI
                         .even
 0000                 _RuntimeInitialise::
 0000                   .dbline 15{
                       ; /* ATmega103 runtime.c file
                       ; 
                       ;    Author : Robert Stuart
                       ;    Company : PDL Industries
                       ;    Date of Creation : 21 July 1999
                       ;    Tested : not yet
                       ; 
                       ;    Function :
                       ; */
                       ; 
                       ; /* include */
                       ; #include "runtime.h"
                       ; 
                       ; void RuntimeInitialise( void )
                       ; {
 0000                   .dbline 16
                       ;   TCCR1B = 0;           /* Stop T1 */
 0000 2224              clr R2
 0002 2EBC              out 0x2e,R2
 0004                   .dbline 17
                       ;   TCNT1 = 0;            /* Clear T1 */
 0004 3324              clr R3
 0006 30924D00          sts 76+1,R3
 000A 20924C00          sts 76,R2
 000E                   .dbline 18
                       ;   OCR1A = _1MS_INTERRUPT;       /* Set Compare A - 1ms for a 6MHz clock */
 000E 80E7              ldi R24,112
 0010 97E1              ldi R25,23
 0012 90934B00          sts 74+1,R25
 0016 80934A00          sts 74,R24
 001A                   .dbline 19
                       ;   TIMSK = BIT(OCIE1A);      /* Compare A interrupt enabled */
 001A 80E1              ldi R24,16
 001C 87BF              out 0x37,R24
 001E                   .dbline 20
                       ;   TCCR1B = BIT(CS10) | BIT(CTC1);
 001E 89E0              ldi R24,9
 0020 8EBD              out 0x2e,R24
 0022                   .dbline 21}
                       ; }
 0022                 L1:
 0022 0895              ret
                         .area bss
 0000                   .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
 0000                 L3:
 0000                   .blkb 2
 0002                 L4:
 0002                   .blkb 1
                         .area text
 0024                   .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
 0024                   .dbfunc s RuntimeInterrupt _RuntimeInterrupt fI
 0024                   .dbsym s seconds L4 c
 0024                   .dbsym s delay L3 I
                       ;            str -> y+2
                         .even
 0024                 _RuntimeInterrupt::
 0024 0E940000          call push_lset
 0028 6397              sbiw R28,19
 002A                   .dbline 24{
                       ; 
                       ; void RuntimeInterrupt( void )
                       ; {
 002A                   .dbline 29
                       ;   static int delay;
                       ;   static char seconds;
                       ;   char str[17];
                       ; 
                       ;   if ( ++delay == _1000MS )
 002A 90910100          lds R25,L3+1
 002E 80910000          lds R24,L3
 0032 0196              adiw R24,1
 0034 282E              mov R2,R24
 0036 392E              mov R3,R25
 0038 30920100          sts L3+1,R3
 003C 20920000          sts L3,R2
 0040 822D              mov R24,R2
 0042 932D              mov R25,R3
 0044 883E              cpi R24,232
 0046 83E0              ldi R24,3
 0048 9807              cpc R25,R24
 004A 49F5              brne L5
 004C                   .dbline 30
                       ;   {
 004C                   .dbline 31
                       ;     if ( ++seconds == 60 )
 004C 80910200          lds R24,L4
 0050 8F5F              subi R24,255    ; addi 1
 0052 282E              mov R2,R24
 0054 20920200          sts L4,R2
 0058 822D              mov R24,R2
 005A 8C33              cpi R24,60
 005C 19F4              brne L7
 005E                   .dbline 32
                       ;       seconds = 0;
 005E 2224              clr R2
 0060 20920200          sts L4,R2
 0064                 L7:
 0064                   .dbline 33
                       ;     sprintf( str, "Seconds %d", seconds);
 0064 20900200          lds R2,L4
 0068 3324              clr R3
 006A 2882              std y+0,R2
 006C 3982              std y+1,R3
 006E 20E0              ldi R18,<L9
 0070 30E0              ldi R19,>L9
 0072 8C2F              mov R24,R28
 0074 9D2F              mov R25,R29
 0076 0296              adiw R24,2
 0078 082F              mov R16,R24
 007A 192F              mov R17,R25
 007C 0E940000          call _sprintf
 0080                   .dbline 34
                       ;     LCDPrintf( str, "ATmega103" );
 0080 20E0              ldi R18,<L10
 0082 30E0              ldi R19,>L10
 0084 8C2F              mov R24,R28
 0086 9D2F              mov R25,R29
 0088 0296              adiw R24,2
 008A 082F              mov R16,R24
 008C 192F              mov R17,R25
 008E 0E940000          call _LCDPrintf
 0092                   .dbline 35
                       ;     delay = 0;
 0092 2224              clr R2
 0094 3324              clr R3
 0096 30920100          sts L3+1,R3
 009A 20920000          sts L3,R2
 009E                   .dbline 36
                       ;   }
 009E                 L5:
 009E                   .dbline 38
                       ;   
                       ;   DelayLCDStartup(); 
 009E 0E940000          call _DelayLCDStartup
 00A2                   .dbline 40
                       ;     
                       ;   WDR;
 00A2 A895              WDR
 00A4                   .dbline 41}
                       ; }
 00A4                 L2:
 00A4 6396              adiw R28,19
 00A6 0E940000          call pop_lset
 00AA 1895              reti
 00AC                   .dbsym l str 2 Ac[17:17]
                         .area data
 0000                   .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
 0000                 L10:
 0000                   .blkb 10
                         .area idata
 0000 41546D65676131303300  .byte 'A,'T,'m,'e,'g,'a,49,48,51,0
                         .area data
 000A                   .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c
 000A                 L9:
 000A                   .blkb 11
                         .area idata
 000A 5365636F6E647320256400    .byte 'S,'e,'c,'o,'n,'d,'s,32,37,'d,0
                         .area data
 0015                   .dbfile C:\Documents\Software\AVR\lcd16x2\code\runtime.c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -