Zdravim,
při používání TFT sem vycházel z ukázkové aplikace a je tam jedna část, které nerozumim.
#define Bank1_LCD_D ((uint32_t)0x60020000) //disp Data ADDR
#define Bank1_LCD_C ((uint32_t)0x60000000) //disp Reg ADDR
*(__IO uint16_t *) (Bank1_LCD_C)= LCD_Reg;
*(__IO uint16_t *) (Bank1_LCD_D)= LCD_RegValue;
Tomudle asi rozumim, prostě to na dané adrese nastaví danou hodnotu.
Ale pak tu mám další ukázkový soubor, který se mi ale nedaří zprovoznit. Používájí se tam ukazatel na strukturu.
[code]
typedef struct
{
__IO uint16_t LCD_REG;
__IO uint16_t LCD_RAM;
} LCD_TypeDef;
#define LCD_BASE ((uint32_t)(0x60000000 | 0x60020000))
#define LCD ((LCD_TypeDef *) LCD_BASE)
void LCD_WriteReg(uint8_t LCD_Reg, uint16_t LCD_RegValue)
{
/* Write 16-bit Index, then Write Reg /
LCD->LCD_REG = LCD_Reg;
/ Write 16-bit Reg */
LCD->LCD_RAM = LCD_RegValue;
}[/code]
Ta funkce opět nastavuje pouze hodnoty na daných adresách. Ale nějak nechápu definice LCD, LCD_BASE, jak se nastaví adresa té struktury. Chtěl jsem to nahradit za tu první variantu, jelikož to je jednodušší na zápis a přehlednější, bohužel mi to nefunguje.
Díky
administrator: přesunuto z "Ostatní"