diff src/cs/drivers/drv_app/r2d/lcds/E_Sample/r2d_task_i.c @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/drivers/drv_app/r2d/lcds/E_Sample/r2d_task_i.c	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,88 @@
+#include "r2d/lcds/e_sample/r2d_tfd_lcd.h"
+#include "rvm/rvm_use_id_list.h"
+#include "r2d/lcds/e_sample/lcd_if.h"
+
+UINT16 tab_temp[264+1];
+
+void r2d_lcd_power_on(void)
+{
+}
+
+void r2d_lcd_power_off(void)
+{
+}
+
+void r2d_refresh(void)
+{
+  UINT16 i,j;
+
+#ifndef _WINDOWS
+  
+  UINT32 v;
+  UINT16 r,g,b; // Red, Green, Blue
+  UINT16 ind;
+  UINT16 command;
+  UINT32  *p;
+
+
+
+  p=r2d_g_framebuffer->p_memory_words;
+
+#if (R2D_REFRESH == R2D_HORIZONTAL)
+    rvf_send_trace("R2D REFRESH",strlen("R2D REFRESH"), NULL_PARAM, 
+			   RV_TRACE_LEVEL_DEBUG_HIGH, R2D_USE_ID );
+
+  command = LCD_DISNOR;
+  f_lcd_if_poll_write(C_LCD_IF_CS0, &(command), 1, C_LCD_IF_INSTRUCTION);
+
+  command = LCD_RAMWR; 
+  f_lcd_if_poll_write(C_LCD_IF_CS0, &(command), 1, C_LCD_IF_INSTRUCTION);
+    
+
+ for(j=0;j<220;j++)
+  {
+	  ind=0;
+	  for (i=0;i<88;i++) // 2 pixels managed in the loop 
+	  {
+
+            v= *p++;
+			v=~v;
+
+			r=(UINT16)(v&0x0000F800); // 5 bits 
+			r=r>>8;
+
+  			g=(UINT16)(v&0x000007E0); // 6 bits 
+			g=g<<5;
+
+			tab_temp[ind++]= (r|g);
+
+			b=(UINT16)(v&0x0000001F); // 5 bits 
+			b=b<<3;
+
+
+			v=v>>16;
+
+			r=(UINT16)(v&0x0000F800); // 5 bits 
+
+			tab_temp[ind++]= (b | r);
+
+
+  			g=(UINT16)(v&0x000007E0); // 6 bits 
+			g=g>>3;
+
+			b=(UINT16)(v&0x0000001F); // 5 bits 
+			b=b<<11;
+
+			tab_temp[ind++]= (b | g);
+
+    }
+	  p++;
+      
+	  f_lcd_if_poll_write(C_LCD_IF_CS0, &(tab_temp[0]), 264, C_LCD_IF_DISPLAY);
+    } 
+
+#endif
+#endif
+   
+
+}
\ No newline at end of file