📄 lcd15xx.lst
字号:
C51 COMPILER V8.05a LCD15XX 04/11/2008 14:19:23 PAGE 9
#ifndef LCD_SUPPORT_PAGING
#define LCD_SUPPORT_PAGING (0)
#endif
/* Switch for support of run-time inversion of display. */
#ifndef LCD_SUPPORT_REVERSEMODE
#define LCD_SUPPORT_REVERSEMODE (0)
#endif
/* Switch support for the LCD_SetOrg function of the driver */
#ifndef LCD_SUPPORT_SETORG
#define LCD_SUPPORT_SETORG (0)
#endif
/* Switch for support of refreshing video RAM. */
#ifndef LCD_SUPPORT_REFRESH
#define LCD_SUPPORT_REFRESH (0)
#endif
#ifndef LCD_SCHEDULE_CNT
#define LCD_SCHEDULE_CNT 0
#endif
#ifndef LCD_NUM_CONTROLLERS
#define LCD_NUM_CONTROLLERS (1)
#endif
#ifndef LCD_LOCK
#define LCD_LOCK()
#endif
#ifndef LCD_UNLOCK
#define LCD_UNLOCK()
#endif
#ifndef LCD_READABLE
#define LCD_READABLE (0)
#endif
#ifndef LCD_CACHE_WRITETHRU
#define LCD_CACHE_WRITETHRU (0)
#endif
#ifndef LCD_SUPPORT_RT_INVERSION
#define LCD_SUPPORT_RT_INVERSION (0)
#endif
#ifndef LCD_SUPPORT_CHECKINIT
#define LCD_SUPPORT_CHECKINIT (0)
#endif
/*
********************************************************************
* *
* Explicit externals *
* *
********************************************************************
*/
/* For compatibility with older configs, define defaults */
#ifndef LCD_SUPPORT_COMTRANS
#define LCD_SUPPORT_COMTRANS 0
C51 COMPILER V8.05a LCD15XX 04/11/2008 14:19:23 PAGE 10
#endif
#ifndef LCD_SUPPORT_SEGTRANS
#define LCD_SUPPORT_SEGTRANS 0
#endif
#if LCD_SUPPORT_COMTRANS
extern U8 LCD__aLine2Com0[LCD_LASTCOM0-LCD_FIRSTCOM0+1];
#if (LCD_NUM_CONTROLLERS >1)
extern U8 LCD__aLine2Com1[LCD_LASTCOM1-LCD_FIRSTCOM1+1];
#endif
#if (LCD_NUM_CONTROLLERS >2)
extern U8 LCD__aLine2Com2[LCD_LASTCOM2-LCD_FIRSTCOM2+1];
#endif
#if (LCD_NUM_CONTROLLERS >3)
extern U8 LCD__aLine2Com3[LCD_LASTCOM3-LCD_FIRSTCOM3+1];
#endif
#endif
#if LCD_SUPPORT_SEGTRANS
extern U8 LCD__aRow2Seg0[LCD_LASTSEG0-LCD_FIRSTSEG0+1];
#if (LCD_NUM_CONTROLLERS >1)
extern U8 LCD__aRow2Seg1[LCD_LASTSEG1-LCD_FIRSTSEG1+1];
#endif
#if (LCD_NUM_CONTROLLERS >2)
extern U8 LCD__aRow2Seg2[LCD_LASTSEG2-LCD_FIRSTSEG2+1];
#endif
#if (LCD_NUM_CONTROLLERS >3)
extern U8 LCD__aRow2Seg3[LCD_LASTSEG3-LCD_FIRSTSEG3+1];
#endif
#endif
/*
********************************************************************
* *
* Internal types *
* *
********************************************************************
*/
/*
********************************************************************
* *
* SCHEDULING *
* *
********************************************************************
*/
#if LCD_SCHEDULE_CNT
static int ScheduleCntRem=LCD_SCHEDULE_CNT;
#define CHECK_SCHEDULE(PixelCnt) \
if ((ScheduleCntRem-=(PixelCnt)) <=0) { \
ScheduleCntRem=LCD_SCHEDULE_CNT; \
LCD_SCHEDULE(); \
}
#else
#define CHECK_SCHEDULE(PixelCnt)
#endif
/*
********************************************************************
* *
* Macro calculations *
C51 COMPILER V8.05a LCD15XX 04/11/2008 14:19:23 PAGE 11
* *
********************************************************************
*/
/* To make life easier, assign physical x/y size */
#if !LCD_SWAP_XY
#define LCD_XSIZE_P LCD_XSIZE
#define LCD_YSIZE_P LCD_YSIZE
#else
#define LCD_XSIZE_P LCD_YSIZE
#define LCD_YSIZE_P LCD_XSIZE
#endif
/* Define number of available segments of controller */
#if (LCD_CONTROLLER == 1560)
#define LCD_COMS_MAX 64
#define LCD_SEGS_MAX 102
#elif (LCD_CONTROLLER == 1565)
#define LCD_COMS_MAX 65
#define LCD_SEGS_MAX 132
#elif (LCD_CONTROLLER == 1566)
#define LCD_COMS_MAX 49
#define LCD_SEGS_MAX 132
#elif (LCD_CONTROLLER == 1567)
#define LCD_COMS_MAX 33
#define LCD_SEGS_MAX 132
#elif (LCD_CONTROLLER == 1568)
#define LCD_COMS_MAX 55
#define LCD_SEGS_MAX 132
#elif (LCD_CONTROLLER == 1569)
#define LCD_COMS_MAX 53
#define LCD_SEGS_MAX 132
#elif (LCD_CONTROLLER == 1575)
#define LCD_COMS_MAX 65
#define LCD_SEGS_MAX 200
#elif (LCD_CONTROLLER == 0713)
#define LCD_COMS_MAX 65
#define LCD_SEGS_MAX 132
#elif (LCD_CONTROLLER == 108)
#define LCD_COMS_MAX 64
#define LCD_SEGS_MAX 64
#elif (LCD_CONTROLLER == 61202)
#define LCD_COMS_MAX 64
#define LCD_SEGS_MAX 64
#else
#error Please define a controller to use !
#endif
/* Define number of used coms/segments per controller */
#if !LCD_SUPPORT_SEGTRANS
#define LCD_NUM_SEGS0 (LCD_LASTSEG0-LCD_FIRSTSEG0+1)
#else
#ifndef LCD_NUM_SEGS0
#error Please define LCD_NUM_SEGS0 in your configuratiuon file LCDConf.h
#endif
#endif
#if !LCD_SUPPORT_COMTRANS
#define LCD_NUM_COMS0 (LCD_LASTCOM0-LCD_FIRSTCOM0+1)
#else
C51 COMPILER V8.05a LCD15XX 04/11/2008 14:19:23 PAGE 12
#ifndef LCD_NUM_COMS0
#error Please define LCD_NUM_COMS0 in your configuratiuon file LCDConf.h
#endif
#endif
#if (LCD_NUM_CONTROLLERS >1)
#if !LCD_SUPPORT_SEGTRANS
#define LCD_NUM_SEGS1 (LCD_LASTSEG1-LCD_FIRSTSEG1+1)
#else
#ifndef LCD_NUM_SEGS1
#error Please define LCD_NUM_SEGS1 in your configuratiuon file LCDConf.h
#endif
#endif
#if !LCD_SUPPORT_COMTRANS
#define LCD_NUM_COMS1 (LCD_LASTCOM1-LCD_FIRSTCOM1+1)
#else
#ifndef LCD_NUM_COMS1
#error Please define LCD_NUM_COMS1 in your configuratiuon file LCDConf.h
#endif
#endif
#endif
#if (LCD_NUM_CONTROLLERS >2)
#define LCD_NUM_SEGS2 (LCD_LASTSEG2-LCD_FIRSTSEG2+1)
#define LCD_NUM_COMS2 (LCD_LASTCOM2-LCD_FIRSTCOM2+1)
#endif
#if (LCD_NUM_CONTROLLERS >3)
#define LCD_NUM_SEGS3 (LCD_LASTSEG3-LCD_FIRSTSEG3+1)
#define LCD_NUM_COMS3 (LCD_LASTCOM3-LCD_FIRSTCOM3+1)
#endif
/* Define total number of used coms/segments */
#if (LCD_NUM_CONTROLLERS ==1)
#define LCD_NUM_SEGS LCD_NUM_SEGS0
#define LCD_NUM_COMS LCD_NUM_COMS0
#elif (LCD_NUM_CONTROLLERS ==2)
#define LCD_NUM_SEGS (LCD_NUM_SEGS0+LCD_NUM_SEGS1)
#define LCD_NUM_COMS (LCD_NUM_COMS0+LCD_NUM_COMS1)
#elif (LCD_NUM_CONTROLLERS ==3)
#define LCD_NUM_SEGS (LCD_NUM_SEGS0+LCD_NUM_SEGS1+LCD_NUM_SEGS2)
#define LCD_NUM_COMS (LCD_NUM_COMS0+LCD_NUM_COMS1+LCD_NUM_COMS2)
#elif (LCD_NUM_CONTROLLERS ==4)
#define LCD_NUM_SEGS (LCD_NUM_SEGS0+LCD_NUM_SEGS1+LCD_NUM_SEGS2+LCD_NUM_SEGS3)
#define LCD_NUM_COMS (LCD_NUM_COMS0+LCD_NUM_COMS1+LCD_NUM_COMS2+LCD_NUM_COMS3)
#endif
/* Calc. the first column to actually write to. This is not as
easy as it seems, because if we mirror X, the controller
uses different columns in video memory to store the data.
If you use lookup tables for segment lines, the offsets are 0
because the right values are in the table
*/
#if LCD_SUPPORT_SEGTRANS==0
#if !LCD_MIRROR_X
#define LCD_SEGOFF0 LCD_FIRSTSEG0
#define LCD_SEGOFF1 (LCD_XORG1 - LCD_FIRSTSEG1)
#define LCD_SEGOFF2 (LCD_XORG2 - LCD_FIRSTSEG2)
#define LCD_SEGOFF3 (LCD_XORG3 - LCD_FIRSTSEG3)
#else
#define LCD_SEGOFF0 (LCD_SEGS_MAX-LCD_LASTSEG0-1)
#define LCD_SEGOFF1 (LCD_SEGS_MAX-LCD_LASTSEG1-1)
#define LCD_SEGOFF2 (LCD_SEGS_MAX-LCD_LASTSEG2-1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -