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.
Diff: TFT_ILI9163C.h
- Revision:
- 2:6c1fadae252f
- Parent:
- 1:c271e7e2e330
- Child:
- 4:90798975c496
--- a/TFT_ILI9163C.h Thu Jan 22 12:16:31 2015 +0000 +++ b/TFT_ILI9163C.h Mon Jan 26 10:39:12 2015 +0000 @@ -90,9 +90,21 @@ #include <Adafruit_GFX.h> -#if defined(STM32F411xE) - #define __F411RE__ - #define __F411RE_DMA__ // use DMA +// from http://www.keil.com/forum/21105/bitband-macro-to-get-bit-number-from-bit-mask/ +#define MASK_TO_BITNUM(x) (x&0x1?0:x&0x2?1:x&0x4?2:x&0x8?3:\ + x&0x10?4:x&0x20?5:x&0x40?6:x&0x80?7:\ + x&0x100?8:x&0x200?9:x&0x400?10:x&0x800?11:\ + x&0x1000?12:x&0x2000?13:x&0x4000?14:x&0x8000?15:\ + x&0x10000?16:x&0x20000?17:x&0x40000?18:x&0x80000?19:\ + x&0x100000?20:x&0x200000?21:x&0x400000?22:x&0x800000?23:\ + x&0x1000000?24:x&0x2000000?25:x&0x4000000?26:x&0x8000000?27:\ + x&0x10000000?28:x&0x20000000?29:x&0x40000000?30:x&0x80000000?31:32) + +#if defined(TARGET_NUCLEO_F411RE) //#if defined(STM32F411xE) +#define BITBAND_PERIPH(addr, bit) \ + (volatile uint32_t*)(PERIPH_BB_BASE+((uint32_t)addr-PERIPH_BASE)*32+(bit*4)) +// use DMA + #define __F411RE_DMA__ #endif //----- Define here witch display you own @@ -257,19 +269,42 @@ void writedata16(uint16_t d); void writedata32(uint16_t d1, uint16_t d2); void writedata16burst(uint16_t d, int32_t len); - void waitSpiFree(); void chipInit(); bool boundaryCheck(int16_t x,int16_t y); void homeAddress(); + void init(PinName cs, PinName dc); DigitalOut _cs; DigitalOut _dc; PinName _resetPinName; -#if defined(__F411RE__) - SPI_TypeDef *spi_ptr; +#if defined(TARGET_NUCLEO_F411RE) + void selectSlave(); + void deselectSlave(); + void setCommandMode(); + void setDataMode(); + void set8bitMode(); + void set16bitMode(); + void waitSpiFree(); + void waitBufferFree(); + + GPIO_TypeDef *cs_port_reg; + uint32_t cs_reg_mask; + GPIO_TypeDef *dc_port_reg; + uint32_t dc_reg_mask; + + // peripheral bit-band addresses +// volatile uint32_t *bb_cs_port; +// volatile uint32_t *bb_dc_port; + volatile uint32_t *bb_spi_txe; + volatile uint32_t *bb_spi_bsy; + volatile uint32_t *bb_spi_spe; + volatile uint32_t *bb_spi_dff; + #if defined(__F411RE_DMA__) DMA_HandleTypeDef hdma; + volatile uint32_t *bb_spi_txdmaen; + volatile uint32_t *bb_dma_sxcr_en; #endif #endif