for Arduino TFT LCD Screen 160x128

Dependents:   TFTLCDSCREEN Pong_ILI9163C

Fork of TFT_ILI9163C by _ peu605

Committer:
billycorgan123
Date:
Fri Mar 04 08:55:32 2016 +0000
Revision:
12:f0799be044ff
Parent:
7:3dcb98ecf29f
first trial with Arduino TFT LCD Screen, ILI9163

Who changed what in which revision?

UserRevisionLine numberNew contents of line
peu605 7:3dcb98ecf29f 1 #include "mbed.h"
peu605 7:3dcb98ecf29f 2 #include "TFT_ILI9163C_BASE.h"
peu605 7:3dcb98ecf29f 3
peu605 7:3dcb98ecf29f 4 // from http://www.keil.com/forum/21105/bitband-macro-to-get-bit-number-from-bit-mask/
peu605 7:3dcb98ecf29f 5 #define MASK_TO_BITNUM(x) (x&0x1?0:x&0x2?1:x&0x4?2:x&0x8?3:\
peu605 7:3dcb98ecf29f 6 x&0x10?4:x&0x20?5:x&0x40?6:x&0x80?7:\
peu605 7:3dcb98ecf29f 7 x&0x100?8:x&0x200?9:x&0x400?10:x&0x800?11:\
peu605 7:3dcb98ecf29f 8 x&0x1000?12:x&0x2000?13:x&0x4000?14:x&0x8000?15:\
peu605 7:3dcb98ecf29f 9 x&0x10000?16:x&0x20000?17:x&0x40000?18:x&0x80000?19:\
peu605 7:3dcb98ecf29f 10 x&0x100000?20:x&0x200000?21:x&0x400000?22:x&0x800000?23:\
peu605 7:3dcb98ecf29f 11 x&0x1000000?24:x&0x2000000?25:x&0x4000000?26:x&0x8000000?27:\
peu605 7:3dcb98ecf29f 12 x&0x10000000?28:x&0x20000000?29:x&0x40000000?30:x&0x80000000?31:32)
peu605 7:3dcb98ecf29f 13
peu605 7:3dcb98ecf29f 14 #define BITBAND_PERIPH(addr, bit) \
peu605 7:3dcb98ecf29f 15 (volatile uint32_t*)(PERIPH_BB_BASE+((uint32_t)addr-PERIPH_BASE)*32+(bit*4))
peu605 7:3dcb98ecf29f 16
peu605 7:3dcb98ecf29f 17
peu605 7:3dcb98ecf29f 18 class TFT_ILI9163C : public TFT_ILI9163C_BASE {
peu605 7:3dcb98ecf29f 19
peu605 7:3dcb98ecf29f 20 public:
peu605 7:3dcb98ecf29f 21
peu605 7:3dcb98ecf29f 22 TFT_ILI9163C(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName dc, PinName reset);
peu605 7:3dcb98ecf29f 23 TFT_ILI9163C(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName dc);
peu605 7:3dcb98ecf29f 24
peu605 7:3dcb98ecf29f 25 private:
peu605 7:3dcb98ecf29f 26
peu605 7:3dcb98ecf29f 27 virtual void init(PinName cs, PinName dc);
peu605 7:3dcb98ecf29f 28 virtual void selectSlave();
peu605 7:3dcb98ecf29f 29 virtual void deselectSlave();
peu605 7:3dcb98ecf29f 30 virtual void setCommandMode();
peu605 7:3dcb98ecf29f 31 virtual void setDataMode();
peu605 7:3dcb98ecf29f 32 virtual void writecommand(uint8_t c);
peu605 7:3dcb98ecf29f 33 virtual void writedata(uint8_t d);
peu605 7:3dcb98ecf29f 34 virtual void writedata16(uint16_t d);
peu605 7:3dcb98ecf29f 35 virtual void writedata32(uint16_t d1, uint16_t d2);
peu605 7:3dcb98ecf29f 36 virtual void writedata16burst(uint16_t d, int32_t len);
peu605 7:3dcb98ecf29f 37
peu605 7:3dcb98ecf29f 38 GPIO_TypeDef *cs_port_reg;
peu605 7:3dcb98ecf29f 39 volatile uint32_t cs_reg_mask;
peu605 7:3dcb98ecf29f 40 GPIO_TypeDef *dc_port_reg;
peu605 7:3dcb98ecf29f 41 volatile uint32_t dc_reg_mask;
peu605 7:3dcb98ecf29f 42
peu605 7:3dcb98ecf29f 43 // peripheral bit-band addresses
peu605 7:3dcb98ecf29f 44 // volatile uint32_t *bb_cs_port;
peu605 7:3dcb98ecf29f 45 // volatile uint32_t *bb_dc_port;
peu605 7:3dcb98ecf29f 46 volatile uint32_t *bb_spi_txe;
peu605 7:3dcb98ecf29f 47 volatile uint32_t *bb_spi_bsy;
peu605 7:3dcb98ecf29f 48 volatile uint32_t *bb_spi_spe;
peu605 7:3dcb98ecf29f 49 volatile uint32_t *bb_spi_dff;
peu605 7:3dcb98ecf29f 50
peu605 7:3dcb98ecf29f 51 void waitSpiFree();
peu605 7:3dcb98ecf29f 52 void waitBufferFree();
peu605 7:3dcb98ecf29f 53 void set8bitMode();
peu605 7:3dcb98ecf29f 54 void set16bitMode();
peu605 7:3dcb98ecf29f 55 };