Forum: Mikrocontroller und Digitale Elektronik ILI9320 landscape


von Cubec (Gast)


Lesenswert?

Nabend,

Ich wollte nur mal fragen ob es Jemand schonmal geschafft hat, den 
ILI9320 display controller im landscape Modus zu benutzen?

Ich kriegs leider nicht so ganz hin...



~ Cubec

von Cubec (Gast)


Lesenswert?

never mind...

von Karl K. (leluno)


Lesenswert?

die Ausrichtung wird durch die Schleifen
for( i=0; i<f_height; i++ ){...
for( j=0; j<f_width; j++ ){...
festgelegt. Durch ändern der Laufrichtung dieser Schleifen kann man 
spiegeln oder drehen.

Bildschirm im Querformat:
//=============================================
void PutChar( uint8_t ASCI)
 {  uint16_t i, j;
     uint16_t  tmp_char;
 //Fontheader auswerten
 //f_width= pgm_read_byte( &ptr_font[2]);
 //f_height=pgm_read_byte( &ptr_font[3]);
 //frame =pgm_read_byte( &ptr_font[4]);
 //vertikal_zeichnen=pgm_read_byte( &ptr_font[5]);
 //if (frame==1){f_width++;f_height+=2;}
if(ASCI<' '||ASCI>130)return;

 u16 Xpos=curposx;
 u16 Ypos=curposy;
 if(frame){
 //  if(!vertikal_zeichnen)Xpos=curposx-1+f_height;

 for(i=0;i<f_width +1;i++){
 //Gui_DrawPoint(Xpos+f_height+1-frame_vert_versatz,Ypos+f_width-i-1, 
backcolor );}
 Gui_DrawPoint(Xpos-frame_vert_versatz+i,Ypos+1+frame_horz_versatz, 
backcolor );}

 for(i=0;i<f_width +1;i++){
 Gui_DrawPoint( Xpos-frame_vert_versatz+i , 
Ypos-f_height+frame_horz_versatz,      backcolor );}

 for(i=0;i<f_height+1;i++){
 Gui_DrawPoint( Xpos-frame_vert_versatz,Ypos-i+frame_horz_versatz, 
backcolor );}

 //pos 1nach unten:
 Xpos++;//90°Bildschirm sonst ypos++
 }
 Xpos=curposx+1;




 if(vertikal_zeichnen){
 //Gui_DrawPoint(20,20,BLACK);
         for( j=0; j<f_width; j++ ){

  //      tmp_char = buffer[i];
  //         tmp_char = pgm_read_byte( 
&ptr_font[(ASCI-32)*f_width+j+7]);
           tmp_char = ( ptr_font[(ASCI-32)*f_width+j+7]);
 //lcd_int3(tmp_char);lw(" ");
     for( i=0; i<f_height; i++ ){
             if( (tmp_char >>((f_height-1) - i)) & (0x01 == 0x01) ){
                 Gui_DrawPoint( Xpos +j , Ypos -i , frontcolor );  // 
Character color
                // Gui_DrawPoint( Xpos +i , Ypos +j , frontcolor );  // 
Character color
             }else{
       if(backcolor!=TRANSPARENT)
       Gui_DrawPoint( Xpos +j, Ypos -i , backcolor );  // Background 
color
       //Gui_DrawPoint( Xpos + i, Ypos +j , backcolor );  // Background 
color

             }
         }
     }
 }else{
 //Xpos=curposx+2-f_height;
 /**/
 for( i=0; i<f_height; i++ ){




 //       tmp_char = buffer[i];
  // tmp_char = pgm_read_byte( 
&ptr_font[(ASCI-ascii_versatz)*f_height+i+7]);
   tmp_char = ( ptr_font[(ASCI-ascii_versatz)*f_height+i+7]);
 //tmp_char = ( f8x12[(ASCI-ascii_versatz)*f_height+i+7]);
 //testx[i]=f8x12[7+i+(ASCI-ascii_versatz)*f_height];
 //testy[i]=7+i+(ASCI-ascii_versatz)*f_height;
 //lcd_int3(tmp_char);lw(" ");

 for( j=0; j<f_width; j++ ){
             if( (tmp_char >>((f_width-1) - j)) & (0x01 == 0x01) ){
      Gui_DrawPoint( Xpos +j , Ypos +i , frontcolor );  // Character 
color
  //  Gui_DrawPoint( Xpos -i , Ypos +j , frontcolor );  // Character 
color
             }else{
         if(backcolor!=TRANSPARENT)
     Gui_DrawPoint( Xpos + j, Ypos +i , backcolor );
 //      Gui_DrawPoint( Xpos - i, Ypos +j , backcolor );  // Background 
color
             }
         }
     }
   }
 }

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.