Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
TFT_ILI9163C_F302R8_SOFT.h@7:3dcb98ecf29f, 2015-02-01 (annotated)
- Committer:
 - peu605
 - Date:
 - Sun Feb 01 15:36:04 2015 +0000
 - Revision:
 - 7:3dcb98ecf29f
 
separate source
Who changed what in which revision?
| User | Revision | Line number | New 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 | |
| peu605 | 7:3dcb98ecf29f | 50 | void waitSpiFree(); | 
| peu605 | 7:3dcb98ecf29f | 51 | void waitBufferFree(); | 
| peu605 | 7:3dcb98ecf29f | 52 | void set8bitMode(); | 
| peu605 | 7:3dcb98ecf29f | 53 | void set16bitMode(); | 
| peu605 | 7:3dcb98ecf29f | 54 | }; |