/* mb90092.h */
#ifndef _mb90092_h_
#define _mb90092_h_
#include "ext.h"
#define c_osd_chr_null 0 //空字符位置
#define c_osd_chr_sel 87 //空心三角
#define c_osd_chr_x1y1 0 //標準
#define c_osd_chr_x2y1 1 //雙寬
#define c_osd_chr_x2y2 2 //雙寬雙高
#define c_osd_chr_x4y2 3 //四寬雙高
#define c_osd_color_black 0
#define c_osd_color_blue 1
#define c_osd_color_red 2
#define c_osd_color_pink 3
#define c_osd_color_green 4
#define c_osd_color_cyan 5
#define c_osd_color_yellow 6
#define c_osd_color_white 7
#define c_osd_chr_color 7 //顯示字符顏色,背景色固定為黑色
#define c_osd_chr_color_sel 4 //當前選擇字符顏色
#define c_blink_on 0x40
#define c_blink_off 0x00
#define gb(x,b) (((x)&(1L<<(b))) ? 1L : 0) //getbit
#define c_osd_chr_addr(x,y) (0x8000+(x)+(((y)&0x0c)<<6)+(((y)&3)<<5))
#define c_osd_chr_dat0(a) (0x8900+((c_osd_color_white)<<4)+(gb((a),10)<<10)+(gb((a),11)<<9)+(gb((a),12)<<3))
#define c_osd_chr_dat1(a) (0x9000+(((a)&0x380)<<1)+((a)&0x7f))
#define c_osd_row_addr(y) (0x8401+(((y)&0x0c)<<6)+(((y)&3)<<5)
#define c_osd_row_dat0 (0x8800)
#define c_osd_row_dat1(size) (0x9000+((size)<<8)) //行默認字符尺寸
#define c_osd_chr_size_x2y1(row) (0xb020+((c_osd_chr_x2y1)<<8)+(row)) //中文
#define c_osd_chr_size_x1y1(row) (0xb020+((c_osd_chr_x2y1)<<8)+(row)) //英文
#define c_osd_blink_on (0xd070)
#define c_osd_blink_off (0xd030)
#define c_osd_disp_on (0xa439)//a439
#define c_osd_disp_off (0xa438)
#define c_osd_row_dist(x) (0xa800+(x))
#define c_osd_vstart(x) (0xb800+(x))
#define c_osd_hstart(x) (0xc400+(x))
#define c_osd_chr_typ (0xc800)
#define c_osd_v_ch 30
#define c_osd_h_ch 5
#define c_osd_v_en 30//40
#define c_osd_h_en 5//40
extern u16 osd_buf[240];
extern void osd_putstr(u8 x,u8 y,u16 __generic *str,u8 len);
extern void osd_clrscr(void);
extern void osd_disp_on(void);
extern void osd_disp_off(void);
extern void osd_init(void);
extern void osd_cmd(u16 wx);
#endif
/*
mb90092.h
1.每次發送16位資料;最高5位為命令字,其余為控制或資料;
0.10000 VSL RA8 RA7 0 RA6 RA5 CA4 CA3 CA2 CA1 CA0 VRAM地址設定
列地址:CA4~CA0:00~17H
行地址:RA8~RA5:00~0BH
VSL=0:設定主屏字符控制RAM地址 //三種VRAM地址設定 24*12 + 12 + 12
10001 MA MB AT 0 CG CR CB MC BG/GR BR/BS BB/MD (僅應用于GR,BS,MD外擴圖形字符)
10010 M9 M8 M7 0 M6 M5 M4 M3 M2 M1 M0
//#define c_osd_chr_addr(x,y) (0x8000+(x)+(((y)&0x0c)<<6)+(((y)&3)<<5))
//#define c_osd_chr_dat0(a,cc) (0x8900+((cc)<<4)+(gb((a),10)<<10)+(gb((a),11)<<9)+(gb((a),12)<<3))
//#define c_osd_chr_dat1(a) (0x9000+(((a)&0x380)<<1)+((a)&0x7f))
標準字符顯示:
(MD),MC~M0 :字符代碼(區位碼) 0000~1FFFH
AT :指定0/1--標準/特殊顯示
實心填充背景顯示
閃爍顯示
陰影背景顯示
CG,CR,CB :字符顏色
BG,BR,BB :字符背景色
GR :指定標準字符/圖形字符顯示
BS :指定陰影背景顯示,優先級高于實心背景特效顯示
圖形字符顯示:
VSL=1:
CA0=0:設定副屏行控制RAM地址
10001 SMA SMB 0 0 SCG SCR SCB SMC SGR SDC SMD
10010 SM9 SM8 SM7 0 SM6 SM5 SM4 SM3 SM2 SM1 SM0
CA0=1:設定主屏行控制RAM地址
10001 OF1 OF0 0 0 0 0 0 PC PG PR PB
10010 G2 G1 G0 0 SOC VD DG KC KG KR KB
//#define c_osd_row_addr(y) (0x8401+(((y)&0x0c)<<6)+(((y)&3)<<5)
//#define c_osd_row_dat0 (0x8800)
//#define c_osd_row_dat1(size) (0x9000+((size)<<8)) //行默認字符尺寸
OF1/OF0 :字符顏色相位控制
PC :陰影背景彩色/黑白控制 (僅外擴圖形模式有效)
PG,PR,PB :陰影背景彩色選擇
G2,G1,G0 :字符尺寸控制
SOC :輸出優先級控制 0:主屏在副屏之上,1:副屏在主屏上
VD :視屏信號輸出控制 1:允許輸出
DG :數字信號輸出控制 1:允許輸出
KC :行背景彩色/黑白控制 (僅外擴圖形模式有效)
KG,KR,KB :行背景顏色選擇
;-------------------------------------------------------------------------------------
3.10011 FIL 0 0 0 0 0 0 0 0 0 0 VRAM寫控制
#define c_osd_fill (0x9c00)
FIL = 0:不填充VRAM
FIL = 1:填充VRAM
;-------------------------------------------------------------------------------------
4.10100 IE IN EB 0 EO CM ZM NP P2 P0 DC 螢屏控制1
//#define c_osd_disp_on (0xa439)
//#define c_osd_disp_off (0xa438)
IE :內部/外部同步控制 0/1--內部/外部
IN :隔行/逐行顯示控制 0/1--隔行/逐行 僅內部同步信號有效
EB :螢屏背景顯示控制 1:一直顯示,0:僅內部同步信號顯示螢屏背景
EO :域控制 1--外部同步信號下,奇數偶數號交換輸出
CM :彩色/黑白顯示控制 0/1--視頻黑白/彩色輸出
ZM :放大控制 0/1--標準/放大 使用放大功能產生雙高字符
NP :制式控制 0/1--NTSC(14.31818mhz)/PAL(17.73447mhz)
P2,P0:花樣背景控制
DC :顯示控制 0/1--disp_off/on
;-------------------------------------------------------------------------------------
5.10101 KID APC GYZ 0 BH2 BH1 BH0 W3 W2 W1 W0 螢屏控制2
//#define c_osd_row_dist(x) (0xa800+(x))
KID :半字控制 0/1:標準顯示/允許半字顯示 \ (外同步與螢屏背景不一直顯示IE=1&EB=0)
APC :APC控制 /
GYZ :行間距放大控制
[BH2~BH0] :顏色相位控制 (當APC=1時有效)
[W3~W0] :主屏行間距控制 (0~15)
;-------------------------------------------------------------------------------------
6.10110 G2 G1 G0 0 SOC VD DG N3 N2 N1 N0 主屏線控3
//#define c_osd_chr_size(size,row) (0xb020+((size)<<8)+(row)) //行當前字符尺寸
[G2~G0] :字符尺寸控制
SOC :輸出優先級控制
VD :視頻信號輸出控制 1--允許視頻信號輸出V-OUT/Y-OUT/C-OUT
DG :數字信號輸出控制
[N3~N0] :行號
;-------------------------------------------------------------------------------------
7.10111 EC LP FO 0 0 Y5 Y4 Y3 Y2 Y1 Y0 主屏垂直位置
//#define c_osd_vstart(x) (0xb800+(x))
EC :同步信號輸出控制 HSYNC/VHYSC輸出脈沖類別(NC)
LP :簡單NTSC/PAL控制
FO :顏色相位信號輸出使能
[Y5~Y0] :垂直開始點
;-------------------------------------------------------------------------------------
8.11000 SC 0 FC 0 0 X5 X4 X3 X2 X1 X0 主屏水平位置
//#define c_osd_hstart(x) (0xc400+(x))
SC :同步信號輸入控制 硬體決定必須設定為1
FC :同步信號輸入3微秒濾波控制
[X5~X0] :水平開始點
;-------------------------------------------------------------------------------------
9.11001 0 0 GRM 0 0 0 0 0 0 0 0 Kanji font顯示控制
//#define c_osd_chr_typ (0xc800)
GRM :0/1--標準模式,僅顯示標準字符,每個字符的背景色能獨立設定;能同時顯示標準/圖形字符
;-------------------------------------------------------------------------------------
a.11010 0 0 RB 0 BK CC BC UC UG UR UB 彩色控制
//#define c_osd_blink_on (0xd070)
//#define c_osd_blink_off (0xd030)
RB :實心填充顯示控制 (AT==1)&&(RB==1)實心背景特效字符顯示/標準顯示,圖形字符一直標準顯示
BK :閃爍控制 陰影背景特效顯示時閃爍無效
CC :字符彩色/黑白控制 0/1--黑白/彩色
BC :字符背景彩色/黑白控制 0/1--黑白/彩色
UC :螢屏背景彩色/黑白控制 0/1--黑白/彩色
UG,UR,UB :螢屏背景顏色選擇
;-------------------------------------------------------------------------------------
b.11011 SG2 SG1 SG0 0 0 SCC SBC SGC SBG SBR SBB 副屏控制
;-------------------------------------------------------------------------------------
c.11100 SGA 0 SY7 0 SY6 SY5 SY4 SY3 SY2 SY1 SY0 副屏垂直位置
;-------------------------------------------------------------------------------------
d.11101 0 SX8 SX7 0 SX6 SX5 SX4 SX3 SX2 SX1 SX0 副屏水平位置
;-------------------------------------------------------------------------------------
*/
uj5u.com熱心網友回復:
仔細看注釋,注釋中說明了很多東西uj5u.com熱心網友回復:
的確。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/115919.html
標籤:茶館
上一篇:c++builder xe5環境下,無法使用alphacontrol 9.10改變devexpress13.1.4皮膚
