?? osd.lis
字號:
.module osd.c
.area text(rom, con, rel)
0000 .dbfile C:\_項目\7寸液晶電視\軟件/mtv048.h
0000 .dbfunc e conversion_char _conversion_char fc
.area func_lit(rom, con, rel)
0000 L74:
0000 8500 .word `L58
0002 8700 .word `L59
0004 8900 .word `L60
0006 8B00 .word `L61
0008 8D00 .word `L62
000A 8F00 .word `L63
000C 9100 .word `L64
000E 9300 .word `L65
0010 9500 .word `L66
0012 9700 .word `L67
0014 A500 .word `L2
0016 A500 .word `L2
0018 A500 .word `L2
001A A500 .word `L2
001C A500 .word `L2
001E A500 .word `L2
0020 A500 .word `L2
0022 A500 .word `L2
0024 A500 .word `L2
0026 A500 .word `L2
0028 A500 .word `L2
002A A500 .word `L2
002C A500 .word `L2
002E A500 .word `L2
0030 A500 .word `L2
0032 A500 .word `L2
0034 A500 .word `L2
0036 A500 .word `L2
0038 A500 .word `L2
003A A500 .word `L2
003C A500 .word `L2
003E A500 .word `L2
0040 1B00 .word `L5
0042 A500 .word `L2
0044 A500 .word `L2
0046 A500 .word `L2
0048 A500 .word `L2
004A A500 .word `L2
004C A500 .word `L2
004E A500 .word `L2
0050 A500 .word `L2
0052 A500 .word `L2
0054 9D00 .word `L70
0056 9900 .word `L68
0058 A500 .word `L2
005A 9B00 .word `L69
005C A100 .word `L72
005E 9F00 .word `L71
0060 8500 .word `L58
0062 8700 .word `L59
0064 8900 .word `L60
0066 8B00 .word `L61
0068 8D00 .word `L62
006A 8F00 .word `L63
006C 9100 .word `L64
006E 9300 .word `L65
0070 9500 .word `L66
0072 9700 .word `L67
0074 A500 .word `L2
0076 A500 .word `L2
0078 A500 .word `L2
007A A500 .word `L2
007C A500 .word `L2
007E A500 .word `L2
0080 A500 .word `L2
0082 5100 .word `L32
0084 5300 .word `L33
0086 5500 .word `L34
0088 5700 .word `L35
008A 5900 .word `L36
008C 5B00 .word `L37
008E 5D00 .word `L38
0090 5F00 .word `L39
0092 6100 .word `L40
0094 6300 .word `L41
0096 6500 .word `L42
0098 6700 .word `L43
009A 6900 .word `L44
009C 6B00 .word `L45
009E 6D00 .word `L46
00A0 6F00 .word `L47
00A2 7100 .word `L48
00A4 7300 .word `L49
00A6 7500 .word `L50
00A8 7700 .word `L51
00AA 7900 .word `L52
00AC 7B00 .word `L53
00AE 7D00 .word `L54
00B0 7F00 .word `L55
00B2 8100 .word `L56
00B4 8300 .word `L57
00B6 A500 .word `L2
00B8 A500 .word `L2
00BA A500 .word `L2
00BC A500 .word `L2
00BE A300 .word `L73
00C0 A500 .word `L2
00C2 1D00 .word `L6
00C4 1F00 .word `L7
00C6 2100 .word `L8
00C8 2300 .word `L9
00CA 2500 .word `L10
00CC 2700 .word `L11
00CE 2900 .word `L12
00D0 2B00 .word `L13
00D2 2D00 .word `L14
00D4 2F00 .word `L15
00D6 3100 .word `L16
00D8 3300 .word `L17
00DA 3500 .word `L18
00DC 3700 .word `L19
00DE 3900 .word `L20
00E0 3B00 .word `L21
00E2 3D00 .word `L22
00E4 3F00 .word `L23
00E6 4100 .word `L24
00E8 4300 .word `L25
00EA 4500 .word `L26
00EC 4700 .word `L27
00EE 4900 .word `L28
00F0 4B00 .word `L29
00F2 4D00 .word `L30
00F4 4F00 .word `L31
.area text(rom, con, rel)
0000 .dbfile C:\_項目\7寸液晶電視\軟件/mtv048.h
0000 ; x -> R20
.even
0000 _conversion_char::
0000 00D0 rcall push_gset1
0002 402F mov R20,R16
0004 .dbline -1
0004 .dbline 83
0004 ; /*======================
0004 ; OSD.c
0004 ; ======================*/
0004 ; #include <macros.h>
0004 ; #include "mtv048.h"
0004 ;
0004 ; extern void iic_init(void);
0004 ; extern unsigned char iic_start(void);
0004 ; extern unsigned char iic_send(unsigned char x);
0004 ; extern unsigned char iic_receive(void);
0004 ; extern void iic_stop(void);
0004 ; /*==========================================
0004 ; write_custom_char()
0004 ; ==========================================*/
0004 ; void write_custom_char(unsigned char j,unsigned char *x)
0004 ; {
0004 ; register unsigned char i;
0004 ; iic_init();
0004 ; iic_start();
0004 ; iic_send(0x7a);
0004 ; iic_send(0xc0+j);
0004 ; iic_send(0x40);
0004 ; for(i=0;i<36;i++)
0004 ; iic_send(*(x++));
0004 ; iic_stop();
0004 ; WDR();
0004 ; }
0004 ; /*==========================================
0004 ; OSD_init()
0004 ; ==========================================*/
0004 ; void OSD_init(void)
0004 ; {
0004 ; iic_init();
0004 ; iic_start();
0004 ; iic_send(0x7a);
0004 ; iic_send(0x8f);
0004 ; iic_send(17);
0004 ; iic_send(0xfb);
0004 ; iic_stop();
0004 ; }
0004 ; /*==========================================
0004 ; OSD_window(unsigned char x)
0004 ; x==0 頻道/視頻源
0004 ; x==1 菜單
0004 ; x==2 音量
0004 ; ==========================================*/
0004 ; void OSD_window(unsigned char x)
0004 ; {
0004 ; register unsigned char i;
0004 ; unsigned char osd_init_code[26]={
0004 ; // ADL ROW COL 00 , 01 , 02 , 03 , 04 , 05 , 06 , 07 , 08 , 09 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18, 19 , 20 , 21 , 22
0004 ; 0x7a,0x8f,0x40,0x0a,0x05,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x0a,0x00,0x24,0x00,0x91,0xd1,0x00,0x00,0x00,0x00};
0004 ; // 0x7a,0x8f,0x40,0x00,0x05,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x19,0x00,0x21,0x00,0xd0,0xdd,0x00};//,0x01,0xff,0xff};
0004 ; switch(x)
0004 ; {
0004 ; case 0: //x==0 頻道/視頻源
0004 ; osd_init_code[03]=0x00; //高1
0004 ; osd_init_code[05]=0x48; //寬10
0004 ; osd_init_code[15]=0x09; //右上
0004 ; osd_init_code[16]=0x2c;
0004 ; break;
0004 ; case 1: //x==1 菜單
0004 ; osd_init_code[03]=0x06; //高7
0004 ; osd_init_code[05]=0x70; //寬15
0004 ; osd_init_code[15]=0x18; //居中
0004 ; osd_init_code[16]=0x1f;
0004 ; break;
0004 ; case 2: //x==2 音量
0004 ; osd_init_code[03]=0x00; //高1
0004 ; osd_init_code[05]=0x78; //寬16
0004 ; osd_init_code[15]=0x3a; //下中
0004 ; osd_init_code[16]=0x20;
0004 ; break;
0004 ; }
0004 ; // osd_init_code[5]|=2;
0004 ; OSD_init();
0004 ; iic_init();
0004 ; iic_start();
0004 ; for(i=0;i<26;i++)
0004 ; {
0004 ; iic_send(osd_init_code[i]);
0004 ; }
0004 ; iic_stop();
0004 .dbline 84
0004 ; }
0004 5527 clr R21
0006 4030 cpi R20,0
0008 E0E0 ldi R30,0
000A 5E07 cpc R21,R30
000C 0CF4 brge X70
000E 9DC0 rjmp L2
0010 X70:
0010 8AE7 ldi R24,122
0012 90E0 ldi R25,0
0014 8417 cp R24,R20
0016 9507 cpc R25,R21
0018 0CF4 brge X71
001A 97C0 rjmp L2
001C X71:
001C 02E0 ldi R16,2
001E 10E0 ldi R17,0
0020 9A01 movw R18,R20
0022 00D0 rcall empy16s
0024 F801 movw R30,R16
0026 80E0 ldi R24,<L74
0028 90E0 ldi R25,>L74
002A E80F add R30,R24
002C F91F adc R31,R25
002E 0590 lpm R0,Z+
0030 1490 lpm R1,Z
0032 F001 movw R30,R0
0034 0994 ijmp
0036 X0:
0036 .dbline 85
0036 ; /*==========================================
0036 L5:
0036 .dbline 87
0036 ; OSD_out_1row()//輸出一行
0036 ; row 行號
0036 0027 clr R16
0038 89C0 rjmp L1
003A X1:
003A .dbline 88
003A ; col 列號
003A L6:
003A .dbline 90
003A ; extent 輸出字符數量
003A ; string 輸出內容
003A 05E8 ldi R16,133
003C 87C0 rjmp L1
003E X2:
003E .dbline 91
003E ; size 字體大小
003E L7:
003E .dbline 93
003E ; ==========================================*/
003E ; unsigned char OSD_out_1row(unsigned char row,unsigned char col,unsigned char extent,unsigned char size,unsigned int *string)
003E 06E8 ldi R16,134
0040 85C0 rjmp L1
0042 X3:
0042 .dbline 94
0042 ; {
0042 L8:
0042 .dbline 96
0042 ; unsigned char mid;
0042 ; register unsigned char j;
0042 07E8 ldi R16,135
0044 83C0 rjmp L1
0046 X4:
0046 .dbline 97
0046 ; mid=size+1;
0046 L9:
0046 .dbline 99
0046 ; extent<<=size;
0046 ; iic_init();
0046 08E8 ldi R16,136
0048 81C0 rjmp L1
004A X5:
004A .dbline 100
004A ; if(iic_start()==0)
004A L10:
004A .dbline 102
004A ; return 0;
004A ; if(iic_send(0x7a)==0)
004A 09E8 ldi R16,137
004C 7FC0 rjmp L1
004E X6:
004E .dbline 103
004E ; return 0;
004E L11:
004E .dbline 105
004E ; if(iic_send(row+0x80)==0)
004E ; return 0;
004E 0AE8 ldi R16,138
0050 7DC0 rjmp L1
0052 X7:
0052 .dbline 106
0052 ; if(iic_send(30)==0)
0052 L12:
0052 .dbline 108
0052 ; return 0;
0052 ; if(iic_send(size*3)==0)
0052 0BE8 ldi R16,139
0054 7BC0 rjmp L1
0056 X8:
0056 .dbline 109
0056 ; return 0;
0056 L13:
0056 .dbline 111
0056 ; iic_stop();
0056 ; if(iic_start()==0)
0056 0CE8 ldi R16,140
0058 79C0 rjmp L1
005A X9:
005A .dbline 112
005A ; return 0;
005A L14:
005A .dbline 114
005A ; if(iic_send(0x7a)==0)
005A ; return 0;
005A 0DE8 ldi R16,141
005C 77C0 rjmp L1
005E X10:
005E .dbline 115
005E ; if(iic_send(row+0x80)==0)
005E L15:
005E .dbline 117
005E ; return 0;
005E ; for(j=0;j<extent;j++)
005E 0EE8 ldi R16,142
0060 75C0 rjmp L1
0062 X11:
0062 .dbline 118
0062 ; {
0062 L16:
0062 .dbline 120
0062 ; if(iic_send(j+col+(0x20*((*(string+j/mid))/256)))==0)
0062 ; return 0;
0062 0FE8 ldi R16,143
0064 73C0 rjmp L1
0066 X12:
0066 .dbline 121
0066 ; if(iic_send(*(string+j/mid))==0)
0066 L17:
0066 .dbline 123
0066 ; return 0;
0066 ; }
0066 00E9 ldi R16,144
0068 71C0 rjmp L1
006A X13:
006A .dbline 124
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -