📄 radio.lis
字号:
.module radio.c
.area text(rom, con, rel)
0000 .dbfile D:\avrmcu\AT980\bu2624\radio.c
0000 .dbfunc s save_fre _save_fre fI
.even
0000 _save_fre::
0000 2297 sbiw R28,2
0002 .dbline -1
0002 .dbline 37
; #include "..\bu2624\bu2624.h"
; #include "..\bu1923\bu1923.h"
; #include "..\main.h"
; #include <iom163.h>
; #include "..\io.h"
; #include <eeprom.h>
; extern NV_SETTINGS gps;
; extern unsigned int freq;
; extern unsigned char g_ui_tmp_msg_cnt;
; extern unsigned char is_autosearching;
; extern unsigned char search_ok;
; extern unsigned char search_dir;
; extern unsigned char autosrch_step;
; extern unsigned char station_no;
; extern unsigned char *err_msg;
; extern unsigned int radio_count;
; extern unsigned char radio_is_muted;
; extern unsigned char is_stereo;
; extern unsigned int info;
; unsigned char store_bit;
;
; #ifdef SGJM_RDS
; extern unsigned char rds_display_type;
; extern unsigned char rds_dis_string[65];
; extern unsigned char pty_is_searching;
; extern unsigned char rds_status;
; extern RDS_DATA_STRUCT rds_data;
; //#define pty_dis_type rds_dis_string[0]
; //#define pty_search_type rds_dis_string[1]
; //#define pty_search_delay rds_dis_string[2]
; #endif
; extern unsigned char Mchvol;
;
; extern unsigned char amfm_flag,station_no,display_type;
; extern unsigned char uicc_code,last_key;
; void save_fre(void)
; {
0002 .dbline 38
; if(amfm_flag)
0002 20900000 lds R2,_amfm_flag
0006 2220 tst R2
0008 59F0 breq L3
000A .dbline 39
; {
000A .dbline 40
; EEPROM_WRITE((int)&(gps.ps_amfre),freq);
000A 82E0 ldi R24,2
000C 90E0 ldi R25,0
000E 8883 std y+0,R24
0010 9983 std y+1,R25
0012 20E0 ldi R18,<_freq
0014 30E0 ldi R19,>_freq
0016 00E0 ldi R16,<_gps+6
0018 10E0 ldi R17,>_gps+6
001A 0E940000 xcall _EEPROMWriteBytes
001E .dbline 42
;
; }
001E 0AC0 xjmp L4
0020 L3:
0020 .dbline 44
0020 .dbline 45
0020 82E0 ldi R24,2
0022 90E0 ldi R25,0
0024 8883 std y+0,R24
0026 9983 std y+1,R25
0028 20E0 ldi R18,<_freq
002A 30E0 ldi R19,>_freq
002C 00E0 ldi R16,<_gps+4
002E 10E0 ldi R17,>_gps+4
0030 0E940000 xcall _EEPROMWriteBytes
0034 .dbline 46
0034 L4:
0034 .dbline -2
0034 .dbline 47
; else
; {
; EEPROM_WRITE((int)&(gps.ps_fmfre),freq);
; }
; }
0034 L2:
0034 2296 adiw R28,2
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbfunc s find_station_no _find_station_no fI
; val -> y+2
; i -> R20
.even
0038 _find_station_no::
0038 0E940000 xcall push_gset1
003C 2497 sbiw R28,4
003E .dbline -1
003E .dbline 49
; unsigned char find_station_no(void)
; {
003E .dbline 52
; unsigned char i;
; unsigned int val;
; if(amfm_flag)
003E 20900000 lds R2,_amfm_flag
0042 2220 tst R2
0044 29F1 breq L8
0046 .dbline 53
; {
0046 .dbline 54
; for(i=0;i<MAX_AM_STATION;i++)
0046 4427 clr R20
0048 1EC0 xjmp L13
004A L10:
004A .dbline 55
; {
004A .dbline 56
; EEPROM_READ((int)&gps.ps_am_station[i],val);
004A 82E0 ldi R24,2
004C 90E0 ldi R25,0
004E 8883 std y+0,R24
0050 9983 std y+1,R25
0052 CE01 movw R24,R28
0054 0296 adiw R24,2
0056 9C01 movw R18,R24
0058 80E0 ldi R24,<_gps+68
005A 90E0 ldi R25,>_gps+68
005C 042F mov R16,R20
005E 1127 clr R17
0060 000F lsl R16
0062 111F rol R17
0064 080F add R16,R24
0066 191F adc R17,R25
0068 0E940000 xcall _EEPROMReadBytes
006C .dbline 57
; if(val == freq)
006C 30900100 lds R3,_freq+1
0070 20900000 lds R2,_freq
0074 4A80 ldd R4,y+2
0076 5B80 ldd R5,y+3
0078 4214 cp R4,R2
007A 5304 cpc R5,R3
007C 19F4 brne L15
007E .dbline 58
; return i;
007E 042F mov R16,R20
0080 1127 clr R17
0082 2AC0 xjmp L7
0084 L15:
0084 .dbline 59
0084 L11:
0084 .dbline 54
0084 4395 inc R20
0086 L13:
0086 .dbline 54
0086 4431 cpi R20,20
0088 00F3 brlo L10
008A .dbline 59
; };
008A .dbline 60
; return 255;
008A 0FEF ldi R16,255
008C 10E0 ldi R17,0
008E 24C0 xjmp L7
0090 L8:
0090 .dbline 63
; }
; else
; {
0090 .dbline 64
; for(i=0;i<MAX_FM_STATION;i++)
0090 4427 clr R20
0092 1EC0 xjmp L20
0094 L17:
0094 .dbline 65
; {
0094 .dbline 66
; EEPROM_READ((int)&gps.ps_fm_station[i],val);
0094 82E0 ldi R24,2
0096 90E0 ldi R25,0
0098 8883 std y+0,R24
009A 9983 std y+1,R25
009C CE01 movw R24,R28
009E 0296 adiw R24,2
00A0 9C01 movw R18,R24
00A2 80E0 ldi R24,<_gps+8
00A4 90E0 ldi R25,>_gps+8
00A6 042F mov R16,R20
00A8 1127 clr R17
00AA 000F lsl R16
00AC 111F rol R17
00AE 080F add R16,R24
00B0 191F adc R17,R25
00B2 0E940000 xcall _EEPROMReadBytes
00B6 .dbline 67
; if(val==freq)
00B6 30900100 lds R3,_freq+1
00BA 20900000 lds R2,_freq
00BE 4A80 ldd R4,y+2
00C0 5B80 ldd R5,y+3
00C2 4214 cp R4,R2
00C4 5304 cpc R5,R3
00C6 19F4 brne L22
00C8 .dbline 68
; return i;
00C8 042F mov R16,R20
00CA 1127 clr R17
00CC 05C0 xjmp L7
00CE L22:
00CE .dbline 69
00CE L18:
00CE .dbline 64
00CE 4395 inc R20
00D0 L20:
00D0 .dbline 64
00D0 4E31 cpi R20,30
00D2 00F3 brlo L17
00D4 .dbline 69
; };
00D4 .dbline 70
; return 255;
00D4 0FEF ldi R16,255
00D6 10E0 ldi R17,0
00D8 .dbline -2
00D8 L7:
00D8 2496 adiw R28,4
00DA 0E940000 xcall pop_gset1
00DE .dbline 0 ; func end
00DE 0895 ret
00E0 .dbsym l val 2 i
00E0 .dbsym r i 20 c
00E0 .dbfunc s radio_action _radio_action fI
.area func_lit(rom, con, rel)
0000 L208:
0000 AF01 .word `L80
0002 4803 .word `L146
0004 9F01 .word `L79
0006 8E01 .word `L78
.area text(rom, con, rel)
00E0 .dbfile D:\avrmcu\AT980\bu2624\radio.c
.area func_lit(rom, con, rel)
0008 L209:
0008 C503 .word `L165
000A C503 .word `L165
000C C503 .word `L165
000E C503 .word `L165
0010 C503 .word `L165
0012 C503 .word `L165
0014 C503 .word `L165
0016 C503 .word `L165
0018 C503 .word `L165
001A C503 .word `L165
001C 2F05 .word `L25
001E 2F05 .word `L25
0020 2F05 .word `L25
0022 BA00 .word `L28
0024 A002 .word `L128
0026 FA02 .word `L139
0028 4304 .word `L181
002A 2F05 .word `L25
002C 6A02 .word `L119
.area text(rom, con, rel)
00E0 .dbfile D:\avrmcu\AT980\bu2624\radio.c
.area func_lit(rom, con, rel)
002E L210:
002E 8D02 .word `L123
0030 2F05 .word `L25
0032 2F05 .word `L25
0034 2F05 .word `L25
0036 C100 .word `L29
0038 3701 .word `L56
003A 2804 .word `L178
003C 2F05 .word `L25
003E 2F05 .word `L25
0040 2F05 .word `L25
0042 2F05 .word `L25
0044 2F05 .word `L25
0046 D001 .word `L83
0048 5C02 .word `L117
004A 6302 .word `L118
004C 1902 .word `L99
.area text(rom, con, rel)
00E0 .dbfile D:\avrmcu\AT980\bu2624\radio.c
.area func_lit(rom, con, rel)
004E L55:
004E 2A01 .word `L53
0050 0B01 .word `L45
0052 1201 .word `L47
0054 1C01 .word `L49
0056 2301 .word `L51
.area text(rom, con, rel)
00E0 .dbfile D:\avrmcu\AT980\bu2624\radio.c
; i -> R20
.even
00E0 _radio_action::
00E0 0E940000 xcall push_gset1
00E4 2297 sbiw R28,2
00E6 .dbline -1
00E6 .dbline 75
; }
; }
;
; void radio_action(void)
; {
00E6 .dbline 78
;
; unsigned char i;
; switch(uicc_code)
00E6 40910000 lds R20,_uicc_code
00EA 5527 clr R21
00EC 4133 cpi R20,49
00EE E0E0 ldi R30,0
00F0 5E07 cpc R21,R30
00F2 8CF0 brlt L206
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -