📄 ma16.lis
字号:
00F8 09C0 xjmp L25
00FA L24:
00FA .dbline 111
00FA ; else
00FA ; {
00FA .dbline 112
00FA ; GPS_receive_buffer[71]=GPS_data_end;
00FA 20900300 lds R2,_GPS_data_end
00FE 20929500 sts _GPS_receive_buffer+71,R2
0102 .dbline 113
0102 ; GPS_validframe_flag=TRUE;
0102 80919700 lds R24,_bit_flag
0106 8260 ori R24,2
0108 80939700 sts _bit_flag,R24
010C .dbline 114
010C ; }
010C L25:
010C .dbline 115
010C ; GPS_status_frame=0x00;
010C 2224 clr R2
010E 20929600 sts _GPS_status_frame,R2
0112 .dbline 116
0112 ; receive_data_flag=TRUE;
0112 80919700 lds R24,_bit_flag
0116 8460 ori R24,4
0118 80939700 sts _bit_flag,R24
011C .dbline 117
011C ; }
011C L22:
011C L19:
011C L15:
011C .dbline -2
011C L11:
011C 2990 ld R2,y+
011E 2FBE out 0x3f,R2
0120 F991 ld R31,y+
0122 E991 ld R30,y+
0124 9991 ld R25,y+
0126 8991 ld R24,y+
0128 2990 ld R2,y+
012A .dbline 0 ; func end
012A 1895 reti
012C .dbend
012C .dbfunc e uart0_tx_isr _uart0_tx_isr fV
.even
012C _uart0_tx_isr::
012C 2A92 st -y,R2
012E 3A92 st -y,R3
0130 8A93 st -y,R24
0132 9A93 st -y,R25
0134 EA93 st -y,R30
0136 FA93 st -y,R31
0138 2FB6 in R2,0x3f
013A 2A92 st -y,R2
013C .dbline -1
013C .dbline 120
013C ; }
013C ; void uart0_tx_isr(void)
013C ; {
013C .dbline 121
013C ; UCSRA|=(1<<TXC);//清发送中断标志
013C 5E9A sbi 0xb,6
013E .dbline 122
013E ; if(com_datasen_len>0)/////////////数据缓冲区数据没有发送完毕
013E 2224 clr R2
0140 30900000 lds R3,_com_datasen_len
0144 2314 cp R2,R3
0146 88F4 brsh L28
0148 .dbline 123
0148 ; {
0148 .dbline 124
0148 ; UDR=*com_send_ptr;
0148 E0910100 lds R30,_com_send_ptr
014C F0910200 lds R31,_com_send_ptr+1
0150 2080 ldd R2,z+0
0152 2CB8 out 0xc,R2
0154 .dbline 125
0154 ; com_send_ptr++;
0154 CF01 movw R24,R30
0156 0196 adiw R24,1
0158 90930200 sts _com_send_ptr+1,R25
015C 80930100 sts _com_send_ptr,R24
0160 .dbline 126
0160 ; com_datasen_len--;
0160 832D mov R24,R3
0162 8150 subi R24,1
0164 80930000 sts _com_datasen_len,R24
0168 .dbline 127
0168 ; }
0168 05C0 xjmp L29
016A L28:
016A .dbline 129
016A .dbline 130
016A 80919700 lds R24,_bit_flag
016E 8E7F andi R24,254
0170 80939700 sts _bit_flag,R24
0174 .dbline 131
0174 L29:
0174 .dbline -2
0174 L27:
0174 2990 ld R2,y+
0176 2FBE out 0x3f,R2
0178 F991 ld R31,y+
017A E991 ld R30,y+
017C 9991 ld R25,y+
017E 8991 ld R24,y+
0180 3990 ld R3,y+
0182 2990 ld R2,y+
0184 .dbline 0 ; func end
0184 1895 reti
0186 .dbend
0186 .dbfunc e init_devices _init_devices fV
.even
0186 _init_devices::
0186 .dbline -1
0186 .dbline 134
0186 ; else
0186 ; {
0186 ; send_busy_flag=FALSE;
0186 ; }
0186 ; }
0186 ; void init_devices(void)
0186 ; {
0186 .dbline 135
0186 ; CLI(); //disable all interrupts
0186 F894 cli
0188 .dbline 136
0188 ; port_init();
0188 56DF xcall _port_init
018A .dbline 137
018A ; uart0_init();
018A 61DF xcall _uart0_init
018C .dbline 138
018C ; OSCCAL=0xb9;
018C 89EB ldi R24,185
018E 81BF out 0x31,R24
0190 .dbline 139
0190 ; send_busy_flag=FALSE;
0190 80919700 lds R24,_bit_flag
0194 8E7F andi R24,254
0196 80939700 sts _bit_flag,R24
019A .dbline 140
019A ; MCUCR = 0x00;
019A 2224 clr R2
019C 25BE out 0x35,R2
019E .dbline 141
019E ; GICR = 0x00;
019E 2BBE out 0x3b,R2
01A0 .dbline 142
01A0 ; TIMSK = 0x00; //timer interrupt sources
01A0 29BE out 0x39,R2
01A2 .dbline 143
01A2 ; SEI(); //re-enable interrupts
01A2 7894 sei
01A4 .dbline -2
01A4 L30:
01A4 .dbline 0 ; func end
01A4 0895 ret
01A6 .dbend
01A6 .dbfunc e system_init _system_init fV
.even
01A6 _system_init::
01A6 .dbline -1
01A6 .dbline 147
01A6 ; //all peripherals are now initialized
01A6 ; }
01A6 ; void system_init()
01A6 ; {
01A6 .dbline 148
01A6 ; GPS_data_conut=1;
01A6 81E0 ldi R24,1
01A8 80930500 sts _GPS_data_conut,R24
01AC .dbline 149
01AC ; GPS_status_frame=0x00;
01AC 2224 clr R2
01AE 20929600 sts _GPS_status_frame,R2
01B2 .dbline 150
01B2 ; GPS_validframe_flag=FALSE;
01B2 80919700 lds R24,_bit_flag
01B6 8D7F andi R24,253
01B8 80939700 sts _bit_flag,R24
01BC .dbline 151
01BC ; receive_data_flag=FALSE;
01BC 8B7F andi R24,251
01BE 80939700 sts _bit_flag,R24
01C2 .dbline -2
01C2 L31:
01C2 .dbline 0 ; func end
01C2 0895 ret
01C4 .dbend
01C4 .dbfunc e send_com_data _send_com_data fV
.even
01C4 _send_com_data::
01C4 .dbline -1
01C4 .dbline 154
01C4 .dbline 155
01C4 80919700 lds R24,_bit_flag
01C8 8170 andi R24,1
01CA D9F4 brne L33
01CC .dbline 156
01CC .dbline 157
01CC 88E4 ldi R24,72
01CE 80930000 sts _com_datasen_len,R24
01D2 .dbline 158
01D2 8150 subi R24,1
01D4 80930000 sts _com_datasen_len,R24
01D8 .dbline 159
01D8 80E0 ldi R24,<_GPS_receive_buffer
01DA 90E0 ldi R25,>_GPS_receive_buffer
01DC 90930200 sts _com_send_ptr+1,R25
01E0 80930100 sts _com_send_ptr,R24
01E4 .dbline 160
01E4 80919700 lds R24,_bit_flag
01E8 8160 ori R24,1
01EA 80939700 sts _bit_flag,R24
01EE .dbline 161
01EE E0910100 lds R30,_com_send_ptr
01F2 F0910200 lds R31,_com_send_ptr+1
01F6 2190 ld R2,Z+
01F8 F0930200 sts _com_send_ptr+1,R31
01FC E0930100 sts _com_send_ptr,R30
0200 2CB8 out 0xc,R2
0202 .dbline 162
0202 L33:
0202 .dbline -2
0202 L32:
0202 .dbline 0 ; func end
0202 0895 ret
0204 .dbend
0204 .dbfunc e main _main fV
0204 ; i -> <dead>
.even
0204 _main::
0204 .dbline -1
0204 .dbline 165
0204 ; }
0204 ; void send_com_data()
0204 ; {
0204 ; if(!send_busy_flag)
0204 ; {
0204 ; com_datasen_len=72;
0204 ; com_datasen_len--;
0204 ; com_send_ptr=GPS_receive_buffer;
0204 ; send_busy_flag=TRUE;
0204 ; UDR=*com_send_ptr++;
0204 ; }
0204 ; }
0204 ; void main(void)
0204 ; {
0204 .dbline 167
0204 ; Uchar i;
0204 ; init_devices();
0204 C0DF xcall _init_devices
0206 .dbline 168
0206 ; system_init();
0206 CFDF xcall _system_init
0208 12C0 xjmp L37
020A L36:
020A .dbline 170
020A ; while(1)
020A ; {
020A .dbline 171
020A ; if(receive_data_flag)
020A 80919700 lds R24,_bit_flag
020E 8695 lsr R24
0210 8695 lsr R24
0212 8170 andi R24,1
0214 61F0 breq L39
0216 .dbline 172
0216 ; {
0216 .dbline 173
0216 ; send_com_data();
0216 D6DF xcall _send_com_data
0218 .dbline 174
0218 ; receive_data_flag=FALSE;
0218 80919700 lds R24,_bit_flag
021C 8B7F andi R24,251
021E 80939700 sts _bit_flag,R24
0222 .dbline 175
0222 ; GPS_validframe_flag=FALSE;
0222 8D7F andi R24,253
0224 80939700 sts _bit_flag,R24
0228 .dbline 176
0228 ; GPS_data_conut=1;
0228 81E0 ldi R24,1
022A 80930500 sts _GPS_data_conut,R24
022E .dbline 177
022E ; }
022E L39:
022E .dbline 178
022E L37:
022E .dbline 169
022E EDCF xjmp L36
0230 X1:
0230 .dbline -2
0230 L35:
0230 .dbline 0 ; func end
0230 0895 ret
0232 .dbsym l i 1 c
0232 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\avr_prm\ATmege16\ma16.c
0000 _com_datasen_len::
0000 .blkb 1
0001 .dbsym e com_datasen_len _com_datasen_len c
0001 _com_send_ptr::
0001 .blkb 2
0003 .dbsym e com_send_ptr _com_send_ptr pc
0003 _GPS_data_end::
0003 .blkb 1
0004 .dbsym e GPS_data_end _GPS_data_end c
0004 _GPS_data_start::
0004 .blkb 1
0005 .dbsym e GPS_data_start _GPS_data_start c
0005 _GPS_data_conut::
0005 .blkb 1
0006 .dbsym e GPS_data_conut _GPS_data_conut c
0006 _GPS_send_buffer::
0006 .blkb 72
004E .dbsym e GPS_send_buffer _GPS_send_buffer A[72:72]c
004E _GPS_receive_buffer::
004E .blkb 72
0096 .dbsym e GPS_receive_buffer _GPS_receive_buffer A[72:72]c
0096 _GPS_status_frame::
0096 .blkb 1
0097 .dbsym e GPS_status_frame _GPS_status_frame c
0097 _bit_flag::
0097 .blkb 1
0098 .dbsym e bit_flag _bit_flag X
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -