#include <stdio.h>
#include <conio.h>
#include <string.h>
#include "sc12/hwapi.h"
#include "sc12/rtos.h"
#include "gfxdriver.h"
#include "misc.h"
Go to the source code of this file.
Defines | |
#define | LCD_CLOCK 2000 |
LCD Refresh clock (in Hz). | |
#define | LCD_MINPWMON 50 |
The brightness PWM signal is derived from the LCD_CLOCK. | |
#define | LCD_MINPWMOFF 10 |
#define | LCD_UPSIDEDOWN |
If you want to mount the display upside down, you can mirror the graphics using this define. | |
Functions | |
char * | LCD_GetScreenBuffer () |
Get a pointer to the screen buffer. | |
int | LCD_GetWidth () |
Get Width of LCD matrix (in pixels). | |
int | LCD_GetHeight () |
Get Height of LCD matrix (in pixels). | |
void | LCD_Clear () |
Clear the lcd_screen array. | |
void | LCD_Update () |
Send the screen buffer to the actual display memory. | |
void | LCD_SetBrightness (int level) |
Set display brightness. | |
void | LCD_Init () |
LCD_Init() must be called, before using any of the other LCD functions. | |
void | LCD_Done () |
Shut down the LCD controller. | |
Variables | |
const unsigned char | mirror [256] |
unsigned char | lcd_screen [4][128] |
memory buffer for the LCD screen. |
|
LCD Refresh clock (in Hz).
Definition at line 29 of file sed1520.cpp. Referenced by LCD_SetBrightness(). |
|
Definition at line 50 of file sed1520.cpp. Referenced by LCD_SetBrightness(). |
|
The brightness PWM signal is derived from the LCD_CLOCK. Some displays have constraints on the duty cycle of the clock signal, so the minimum and maximum duty cycles can be set by LCD_MINPWMON and LCD_MINPWMOFF (in timer ticks) NOTE: If you have problems with your LCD, you should try higher PWM values first! I had a real debugging nightmare when i got random pixels on my display, only to find out that the timing was too tight.. 50 and 10 should do for any SED1520 driven display, while still allowing brightness control between 4 and 99.2% (i even tried heating it with a hairdryer, because the display controller seems to get slower when it's warm :) Definition at line 49 of file sed1520.cpp. Referenced by LCD_SetBrightness(). |
|
If you want to mount the display upside down, you can mirror the graphics using this define. (Thanks to Robert Dubber) Definition at line 58 of file sed1520.cpp. |
|
Clear the lcd_screen array.
Definition at line 117 of file sed1520.cpp. References lcd_screen. Referenced by LCD_Init(). |
|
Shut down the LCD controller.
Definition at line 220 of file sed1520.cpp. References hal_stop_timer(), pfe_enable_pio(), PIO_IPD, and PIO_IPU. |
|
Get Height of LCD matrix (in pixels).
Definition at line 108 of file sed1520.cpp. |
|
Get a pointer to the screen buffer.
Definition at line 90 of file sed1520.cpp. References lcd_screen. |
|
Get Width of LCD matrix (in pixels).
Definition at line 99 of file sed1520.cpp. |
|
LCD_Init() must be called, before using any of the other LCD functions. The display gets initialized, and cleared. Definition at line 191 of file sed1520.cpp. References LCD_Clear(), LCD_SetBrightness(), LCD_Update(), pfe_enable_bus(), pfe_enable_pcs(), and pfe_enable_timer(). |
|
Set display brightness. This function MUST be called during initialization, because it sets up the vertical refresh timer for the LCD. (the brightness PWM signal is derived from that clock)
Definition at line 168 of file sed1520.cpp. References hal_init_timer(), hal_start_timer(), LCD_CLOCK, LCD_MINPWMOFF, and LCD_MINPWMON. Referenced by LCD_Init(). |
|
Send the screen buffer to the actual display memory.
Definition at line 130 of file sed1520.cpp. References lcd_screen, and mirror. |
|
memory buffer for the LCD screen.
Definition at line 84 of file sed1520.cpp. Referenced by LCD_Clear(), LCD_GetScreenBuffer(), and LCD_Update(). |
|
Initial value: { 0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0, 0x08,0x88,0x48,0xC8,0x28,0xA8,0x68,0xE8,0x18,0x98,0x58,0xD8,0x38,0xB8,0x78,0xF8, 0x04,0x84,0x44,0xC4,0x24,0xA4,0x64,0xE4,0x14,0x94,0x54,0xD4,0x34,0xB4,0x74,0xF4, 0x0C,0x8C,0x4C,0xCC,0x2C,0xAC,0x6C,0xEC,0x1C,0x9C,0x5C,0xDC,0x3C,0xBC,0x7C,0xFC, 0x02,0x82,0x42,0xC2,0x22,0xA2,0x62,0xE2,0x12,0x92,0x52,0xD2,0x32,0xB2,0x72,0xF2, 0x0A,0x8A,0x4A,0xCA,0x2A,0xAA,0x6A,0xEA,0x1A,0x9A,0x5A,0xDA,0x3A,0xBA,0x7A,0xFA, 0x06,0x86,0x46,0xC6,0x26,0xA6,0x66,0xE6,0x16,0x96,0x56,0xD6,0x36,0xB6,0x76,0xF6, 0x0E,0x8E,0x4E,0xCE,0x2E,0xAE,0x6E,0xEE,0x1E,0x9E,0x5E,0xDE,0x3E,0xBE,0x7E,0xFE, 0x01,0x81,0x41,0xC1,0x21,0xA1,0x61,0xE1,0x11,0x91,0x51,0xD1,0x31,0xB1,0x71,0xF1, 0x09,0x89,0x49,0xC9,0x29,0xA9,0x69,0xE9,0x19,0x99,0x59,0xD9,0x39,0xB9,0x79,0xF9, 0x05,0x85,0x45,0xC5,0x25,0xA5,0x65,0xE5,0x15,0x95,0x55,0xD5,0x35,0xB5,0x75,0xF5, 0x0D,0x8D,0x4D,0xCD,0x2D,0xAD,0x6D,0xED,0x1D,0x9D,0x5D,0xDD,0x3D,0xBD,0x7D,0xFD, 0x03,0x83,0x43,0xC3,0x23,0xA3,0x63,0xE3,0x13,0x93,0x53,0xD3,0x33,0xB3,0x73,0xF3, 0x0B,0x8B,0x4B,0xCB,0x2B,0xAB,0x6B,0xEB,0x1B,0x9B,0x5B,0xDB,0x3B,0xBB,0x7B,0xFB, 0x07,0x87,0x47,0xC7,0x27,0xA7,0x67,0xE7,0x17,0x97,0x57,0xD7,0x37,0xB7,0x77,0xF7, 0x0F,0x8F,0x4F,0xCF,0x2F,0xAF,0x6F,0xEF,0x1F,0x9F,0x5F,0xDF,0x3F,0xBF,0x7F,0xFF } Definition at line 61 of file sed1520.cpp. Referenced by LCD_Update(). |