0,0 → 1,88 |
#ifndef ArduCam_Max7456_h |
#define ArduCam_Max7456_h |
|
/******* FROM DATASHEET *******/ |
|
//#define isPAL |
#define MAX7456_SELECT 6//SS |
#define MAX7456_VSYNC 2//INT0 |
|
#ifdef isPAL |
#define MAX7456_MODE 0x40 //PAL mask 10000000 |
#else |
#define MAX7456_MODE 0x00 //NTSC mask 00000000 ("|" will do nothing) |
#endif |
|
//MAX7456 reg write addresses |
#define MAX7456_VM0_reg 0x00 |
#define MAX7456_VM1_reg 0x01 |
#define MAX7456_DMM_reg 0x04 |
#define MAX7456_DMAH_reg 0x05 |
#define MAX7456_DMAL_reg 0x06 |
#define MAX7456_DMDI_reg 0x07 |
#define MAX7456_OSDM_reg 0x0c //not used. Is to set mix |
|
//MAX7456 reg write addresses to recording NVM process |
#define MAX7456_CMM_reg 0x08 |
#define MAX7456_CMAH_reg 0x09 |
#define MAX7456_CMAL_reg 0x0a |
#define MAX7456_CMDI_reg 0x0b |
#define MAX7456_STAT_reg 0xa0 //0xa[X] |
|
//DMM commands |
#define MAX7456_CLEAR_display 0x04 |
#define MAX7456_CLEAR_display_vert 0x06 |
|
#define MAX7456_INCREMENT_auto 0x03 |
#define MAX7456_SETBG_local 0x20 //00100000 force local BG to defined brightness level VM1[6:4] |
|
#define MAX7456_END_string 0xff |
|
//VM0 commands mixed with mode NTSC or PAL mode |
#define MAX7456_ENABLE_display (0x08 | MAX7456_MODE) //Don't used. Bad sync. 00001000 |
#define MAX7456_ENABLE_display_vert (0x0c | MAX7456_MODE) //Much better. Good sync 00001100 |
#define MAX7456_RESET (0x02 | MAX7456_MODE) |
#define MAX7456_DISABLE_display (0x00 | MAX7456_MODE) |
//VM0 command modifiers |
#define MAX7456_SYNC_autosync 0x10 |
#define MAX7456_SYNC_internal 0x30 |
#define MAX7456_SYNC_external 0x20 |
//VM1 command modifiers |
#define MAX7456_WHITE_level_80 0x03 |
#define MAX7456_WHITE_level_90 0x02 |
#define MAX7456_WHITE_level_100 0x01 |
#define MAX7456_WHITE_level_120 0x00 |
|
//If PAL |
#ifdef isPAL |
#define MAX7456_screen_size 480 |
#define MAX7456_screen_rows 15 |
#else |
#define MAX7456_screen_size 390 |
#define MAX7456_screen_rows 13 |
#endif |
|
//------------------ the OSD class ----------------------------------------------- |
|
class OSD: public BetterStream |
{ |
public: |
OSD(void); |
void init(void); |
void clear(void); |
void plug(void); |
void setPanel(uint8_t start_col, uint8_t start_row); |
void openPanel(void); |
void closePanel(void); |
void control(uint8_t ctrl); |
virtual int available(void); |
virtual int read(void); |
virtual int peek(void); |
virtual void flush(void); |
virtual void write(uint8_t c); |
using BetterStream::write; |
private: |
uint8_t start_col, start_row, col, row; |
}; |
|
#endif |