Hello I am beginner using arm CPU-s. And I have problem with my controller. Problem is I get 12 copys horizontaly, but vertical works fine. It seems that it only displays data wich is in DMA fifo. Some strange reason it reads frame buffer verticaly but not whil "printing" horizontal line
Allos some strange things
1) in user manual LCD Upper Panel Base Address register have to reserve bits so i need to shift, but actually it is not necessary, otherwize i never work 2) register Clocks_Per_Line : In datasheet Clocks_Per_Line = Pixels_Per_Lin-1. Pixels_Per_Line = (actual pixsels per line/16)-1. But wh Clocks_Per_Line register is 10 bits?
my LCD code:
const long Horisontal_Back_Proch = 128 ; // const long Horisontal_Front_Proch = 24 ; // const long Horizontal_Sync_Pulse_Width = 72 ; // const long Pixels_Per_Line = 800 ; //
const long Vertical_Back_Porch = 22 ; // const long Vertical_Front_Porch = 1 ; // const long Vertical_Sync_Pulse_Width = 2 ; // const long Lines_Per_Panel = 600 ;
const long Bypass_Pixel_Clock_Divider = 1 ; const long Clocks_Per_Line = 799; const long Invert_Output_Enable = 0 ; const long Invert_Panel_Clock = 1 ; const long Invert_Horizontal_Sync = 1 ; const long Invert_Vertical_Sync = 1 ; const long AC_Bias_Pin_Frequency = 0 ; const long Panel_Clock_Divisor = 1 ;
const long LCD_Upper_Panel_Base_Address = 0x04000000; const long LCD_DMA_FIFO_Watermark_Level = 1 ; const long LCD_DMA_FIFO_Test_Mode_Enable = 0 ; const long LCD_Vertical_Compare = 0 ; const long LCD_Power_Enable = 1 ; const long RGB_or_BGR_Format_Selection = 1 ; const long LCD_Interface_is_Dual_Panel_STN = 0 ; const long Monochrome_LCD = 1 ; const long LCD_is_TFT = 1 ; const long STN_LCD_is_Monochrome = 0 ; const long LCD_Bits_per_Pixel = 4 ; const long LCD_Controller_Enable = 1 ;
void LCD_INIT(void){
LCDUPBASE = LCD_Upper_Panel_Base_Address ;//