📄 timer_send.lis
字号:
0036 29BE out 0x39,R2
0038 .dbline 102
0038 ; //EIMSK=0x01;
0038 ;
0038 ; return;
0038 .dbline -2
0038 L1:
0038 .dbline 0 ; func end
0038 0895 ret
003A .dbend
003A .dbfunc e resethdlc _resethdlc fV
.even
003A _resethdlc::
003A .dbline -1
003A .dbline 106
003A ; }
003A ; //-------------------------------------------------------------
003A ; void resethdlc(void)
003A ; {
003A .dbline 107
003A ; PORTD|=0x40; //0100_0000
003A 969A sbi 0x12,6
003C .dbline -2
003C .dbline 109
003C ; //PORTD&=0xbf;
003C ; }
003C L2:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbend
003E .dbfunc e cshdlc _cshdlc fV
.even
003E _cshdlc::
003E .dbline -1
003E .dbline 112
003E ; //--------------------------------------------------------------
003E ; void cshdlc(void)
003E ; {
003E .dbline 113
003E ; PORTD&=0x3f; //0011_1111
003E 82B3 in R24,0x12
0040 8F73 andi R24,63
0042 82BB out 0x12,R24
0044 .dbline -2
0044 .dbline 114
0044 ; }
0044 L3:
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbend
0046 .dbfunc e int_open _int_open fV
.even
0046 _int_open::
0046 .dbline -1
0046 .dbline 118
0046 ;
0046 ; //-------------------------------------------------------------
0046 ; void int_open(void)
0046 ; {
0046 .dbline 119
0046 ; _SEI();
0046 7894 sei
0048 .dbline 120
0048 ; asm("nop");
0048 0000 nop
004A .dbline -2
004A .dbline 121
004A ; }
004A L4:
004A .dbline 0 ; func end
004A 0895 ret
004C .dbend
004C .dbfunc e clk _clk fV
.even
004C _clk::
004C .dbline -1
004C .dbline 124
004C ; //--------------------------------------------------------------
004C ; void clk(void)
004C ; {
004C .dbline 125
004C ; PORTD&=0xdf; //1101_1111 片选8254
004C 82B3 in R24,0x12
004E 8F7D andi R24,223
0050 82BB out 0x12,R24
0052 .dbline 128
0052 ;
0052 ; //送入计数方式
0052 ; XBYTE[0x3300]=0x36; //地址11_0000_0000 数据0011_0110
0052 86E3 ldi R24,54
0054 80930033 sts 13056,R24
0058 .dbline 129
0058 ; XBYTE[0x3000]=0x02; //地址00_0000_0000 数据0000_0010
0058 82E0 ldi R24,2
005A 80930030 sts 12288,R24
005E .dbline 130
005E ; XBYTE[0x3000]=0x00; //地址00_0000_0000 数据0000_0000
005E 2224 clr R2
0060 20920030 sts 12288,R2
0064 .dbline 132
0064 ;
0064 ; XBYTE[0x3300]=0x76; // 数据0111_0110
0064 86E7 ldi R24,118
0066 80930033 sts 13056,R24
006A .dbline 133
006A ; XBYTE[0x3100]=0x02; //地址01_0000_0000 数据0000_0010
006A 82E0 ldi R24,2
006C 80930031 sts 12544,R24
0070 .dbline 134
0070 ; XBYTE[0x3100]=0x00; //地址01_0000_0000 数据0000_0000
0070 20920031 sts 12544,R2
0074 .dbline 136
0074 ;
0074 ; XBYTE[0x3300]=0xB6; // 数据1011_0110
0074 86EB ldi R24,182
0076 80930033 sts 13056,R24
007A .dbline 137
007A ; XBYTE[0x3200]=0x02; //地址10_0000_0000 数据0000_0010
007A 82E0 ldi R24,2
007C 80930032 sts 12800,R24
0080 .dbline 138
0080 ; XBYTE[0x3200]=0x00; //地址10_0000_0000 数据0000_0000
0080 20920032 sts 12800,R2
0084 .dbline 141
0084 ;
0084 ; //启动分频计数器
0084 ; PORTD|=0x1c; //0001_1100
0084 82B3 in R24,0x12
0086 8C61 ori R24,28
0088 82BB out 0x12,R24
008A .dbline 144
008A ;
008A ; //取消片选
008A ; PORTD|=0x20; //0010_0000
008A 959A sbi 0x12,5
008C .dbline 145
008C ; return;
008C .dbline -2
008C L5:
008C .dbline 0 ; func end
008C 0895 ret
008E .dbend
008E .dbfunc e automode _automode fV
.even
008E _automode::
008E .dbline -1
008E .dbline 149
008E ; }
008E ; //------------------------------------------------------------------
008E ; void automode(void)
008E ; {
008E .dbline 150
008E ; CCR1=0x98; //1001_1000
008E 88E9 ldi R24,152
0090 80932F20 sts 8239,R24
0094 .dbline 152
0094 ;
0094 ; MASB=0xfb; //1111_1011
0094 8BEF ldi R24,251
0096 80936020 sts 8288,R24
009A .dbline 153
009A ; MASK=0x27; //0010_0111
009A 87E2 ldi R24,39
009C 80932020 sts 8224,R24
00A0 .dbline 154
00A0 ; MODE=0x18; //0001_1100 数据传输由HSCX自动管理
00A0 88E1 ldi R24,24
00A2 80932220 sts 8226,R24
00A6 .dbline 155
00A6 ; TIMR=0x7f; //监控帧自动重试的次数
00A6 8FE7 ldi R24,127
00A8 80932320 sts 8227,R24
00AC .dbline 157
00AC ;
00AC ; XAD1=0x00; //未知
00AC 2224 clr R2
00AE 20922320 sts 8227,R2
00B2 .dbline 158
00B2 ; XAD2=0x03; //未知
00B2 83E0 ldi R24,3
00B4 80932520 sts 8229,R24
00B8 .dbline 159
00B8 ; RAH1=0x02; //IMPORMANT!!!
00B8 82E0 ldi R24,2
00BA 80932620 sts 8230,R24
00BE .dbline 160
00BE ; RAH2=0x00; //IMPORTANT!!!
00BE 20922720 sts 8231,R2
00C2 .dbline 161
00C2 ; RAL1=0x01; //未知
00C2 81E0 ldi R24,1
00C4 80932820 sts 8232,R24
00C8 .dbline 162
00C8 ; RAL2=0x01; //未知
00C8 80932920 sts 8233,R24
00CC .dbline 163
00CC ; CCR2=0x00; //
00CC 20922C20 sts 8236,R2
00D0 .dbline 166
00D0 ;
00D0 ;
00D0 ; XBCH=0x00;
00D0 20922D20 sts 8237,R2
00D4 L7:
00D4 .dbline 167
00D4 L8:
00D4 .dbline 167
00D4 ; while(CEC==1); //等待CMDR可写
00D4 80912120 lds R24,8225
00D8 8470 andi R24,4
00DA 8695 lsr R24
00DC 8695 lsr R24
00DE 8130 cpi R24,1
00E0 C9F3 breq L7
00E2 .dbline 168
00E2 ; CMDR=0x41; //重启收发器
00E2 81E4 ldi R24,65
00E4 80932120 sts 8225,R24
00E8 .dbline -2
00E8 .dbline 169
00E8 ; }
00E8 L6:
00E8 .dbline 0 ; func end
00E8 0895 ret
00EA .dbend
00EA .dbfunc e delay_nms _delay_nms fV
00EA ; i_dms -> R20,R21
00EA ; tm -> R22,R23
.even
00EA _delay_nms::
00EA 0E940000 xcall push_gset2
00EE B801 movw R22,R16
00F0 .dbline -1
00F0 .dbline 172
00F0 ; //-----------------------------------------------------------------------
00F0 ; void delay_nms(unsigned int tm)
00F0 ; {
00F0 .dbline 174
00F0 ; unsigned int i_dms;
00F0 ; for(i_dms=tm;i_dms>0;i_dms--)
00F0 AB01 movw R20,R22
00F2 03C0 xjmp L14
00F4 L11:
00F4 .dbline 175
00F4 08D0 xcall _delay_1ms
00F6 L12:
00F6 .dbline 174
00F6 4150 subi R20,1
00F8 5040 sbci R21,0
00FA L14:
00FA .dbline 174
00FA 4030 cpi R20,0
00FC 4507 cpc R20,R21
00FE D1F7 brne L11
0100 X0:
0100 .dbline -2
0100 .dbline 176
0100 ; delay_1ms();
0100 ; }
0100 L10:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -