/*************************************************************************** * Adafruit_1.5INCH_RGBOLED駆動用ライブラリーヘッダーファイル * OLEDパネル:UG2828GDEDF11+キャリーボード * 制御IC:SSD1351 * * RD3:(INV)CS (INV)OLED チップイネーブル * RB5:(INV)CS (INV)SD チップイネーブル * RG7:SDIN SD読込みデータ * RG8:SDOUT SD/OLED書込みみデータ * RG6:SCK 同期通信用クロック * RB4:D/(INV)C データ/(INV)コマンド 選択信号 * RD7:(INV)RES (INV)OLED リセット * * 2018.1.27 N.Ishii *****************************************************************************/ /// 128×128ドット・カラーOLED ポート定義 #define SPI_OLED_CS LATDbits.LATD3 // トレーニング基板の、RD4ポートLowぱなし。壊れた模様。なのでRD3に変更。 #define SPI_SD_CS LATBbits.LATB5 #define SPI_SD_DATA LATGbits.LATG7 // SD_SDI(SD読込み) #define SPI_OLED_DATA LATGbits.LATG8 // OLED_SDO(OLED書込み・SD書込みは予定なし) #define SPI_CLK LATGbits.LATG6 // SCK(SD/OLED共用) #define SPI_DC LATBbits.LATB4 // OLED_DC #define SPI_RES LATDbits.LATD7 // OLED_RESET/ ///***** 源発振 ***** #define Fosc 80 // 単位はMHzで指定 /// サイズ指定 #define ENDCOL 128 // X(colum)方向 #define ENDROW 128 // Y(raw)方向 // 8x8 font用定義 #define XChar (short)(((ENDCOL)/8)+1) // =17→ X方向の文字数+1 #define YLine (short)(((ENDROW)/8)+1) // =17→ Y方向の文字数+1 /******************************************* * 16bit Color Difinition *******************************************/ #define WHITE 0xFFFF #define BLACK 0x0000 #define RED 0xF800 #define GREEN 0x07E0 #define BLUE 0x001F #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define BROWN 0x8000 #define ORANGE 0xFC00 #define PERPLE 0x8010 #define COBALT 0x041F /*** 関数プロトタイプ ****/ void SPI_tx_byte(unsigned char d, char dc); void OLEDInit(void); void OLED_Clear(unsigned short color); void OLED_Pixel(short Xpos, short Ypos, unsigned short color); void OLED_Line(short x0, short y0, short x1, short y1, unsigned short color); void OLED_Circle(int x0, int y0, int r, unsigned short color); void OLED_Image(void); void OLED_Char(char colum, char line, unsigned char letter, unsigned short color1, unsigned short color2); void OLED_Str(char colum, char line, char *s, unsigned short color1, unsigned short color2); short OLED_Kanji(char line, char colum, unsigned char *ptr, unsigned short color1, unsigned short color2); void KanjiCode(char line, char colum, short upcode, short lowcode, unsigned short color1, unsigned short color2); void Kanji_Str(char line, char colum, const short* ptr, unsigned short color1, unsigned short color2); void delay_us(unsigned short usec); void delay_ms(unsigned short msec);