Moin,
ich versuche mit meiner selbstgeschriebenen Bibliothek Zahlen auf dem 
Display darzustellen.
Grundsätzlich ist dies auch kein Problem, wenn ich das in einem 
(statischen)String ausgebe. Dann funktioniert alles. Wenn ich jetzt 
dynamische Zahlen darstellen möchte, die per itoa() in einen String 
gewandelt wurden. Dann erscheinen in der obersten Zeile merkwürdige 
Zeichen, bzw einzelne Pixel. Woran könnte das liegen? 
   
  
  
 
      
      
  
  
    
      von
      
        Olaf  (Gast)
      
      
       
    
    
      06.12.2016 16:35 
    
     
  
  
      > Dann erscheinen in der obersten Zeile merkwürdige 
> Zeichen, bzw einzelne Pixel. Woran könnte das liegen? 
Zeiger in Zeile 42. Du schuldest mir einen Hamster.
Olaf 
  
  
 
      
      
  
  
    
      von
      
        STler  (Gast)
      
      
       
    
    
      06.12.2016 16:36 
    
     
  
  
      Marco G. schrieb: > Woran könnte das liegen? 
An Dir. 
  
  
 
      
      
  
  
  
  
      Oja, sorry vergessen anzuhängen. Hier der Inhalt der Lib.
 1 /* 
2  * SSD1306.c 
3  * 
4  * Created: 02.12.2016 11:48:40 
5  *  Author:  
6  */  
7 
 8 #include  <stdlib.h> 
9 #include  <string.h> 
10 #include  "i2c.h" 
11 #include  "Font.h" 
12 #include  "SSD1306.h" 
13 
 14 static  uint8_t  Buffer [ 1024 ]  =  { 
15   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 16   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 17   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 18   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 19   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 20   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 21   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 22   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 23   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 24   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 25   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 26   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 27   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 28   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 29   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 30   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 31   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 32   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 33   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 34   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 35   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 36   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 37   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 38   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 39   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 40   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 41   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 42   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 43   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 44   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 45   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 46   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 47   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 48   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 49   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 50   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 51   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 52   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 53   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 54   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 55   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 56   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 57   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 58   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 59   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 60   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 61   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 62   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 63   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 64   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 65   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 66   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 67   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 68   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 69   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 70   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 71   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 72   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 73   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 74   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 75   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 76   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 77   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 , 
 78   0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 ,  0xAA ,  0x55 
 79 
 80   }; 
 81 
 82 void  SSD1306_init () 
83 { 
84   SSD1306_command ( OLED_CMD_DISPLAY_OFF ); 
 85   SSD1306_command ( OLED_CMD_SET_DISPLAY_CLK_DIV ); 
 86   SSD1306_command ( 0x80 ); 
 87   
 88   SSD1306_command ( OLED_CMD_SET_MUX_RATIO ); 
 89   SSD1306_command ( 0x3F ); 
 90   
 91   SSD1306_command ( OLED_CMD_SET_DISPLAY_OFFSET ); 
 92   SSD1306_command ( 0x0 ); 
 93   SSD1306_command ( OLED_CMD_SET_DISPLAY_START_LINE  |  0x0 ); 
 94   SSD1306_command ( OLED_CMD_SET_CHARGE_PUMP ); 
 95   SSD1306_command ( 0x14 ); 
 96   SSD1306_command ( OLED_CMD_SET_MEMORY_ADDR_MODE ); 
 97   SSD1306_command ( 0x00 ); 
 98   SSD1306_command ( OLED_CMD_SET_MEMORY_ADDR_MODE ); 
 99   SSD1306_command ( 0x00 ); 
 100   SSD1306_command ( OLED_CMD_SET_SEGMENT_REMAP  |  0x1 ); 
 101   SSD1306_command ( OLED_CMD_SET_COM_SCAN_MODE ); 
 102   
 103   SSD1306_command ( OLED_CMD_SET_COM_PIN_MAP ); 
 104   SSD1306_command ( 0x12 ); 
 105   SSD1306_command ( OLED_CMD_SET_CONTRAST ); 
 106   SSD1306_command ( 0xCF ); 
 107   
 108   SSD1306_command ( OLED_CMD_SET_PRECHARGE ); 
 109   SSD1306_command ( 0xF1 ); 
 110   SSD1306_command ( OLED_CMD_SET_VCOMH_DESELCT ); 
 111   SSD1306_command ( 0x40 ); 
 112   SSD1306_command ( OLED_CMD_DISPLAY_RAM ); 
 113   SSD1306_command ( OLED_CMD_DISPLAY_NORMAL ); 
 114   SSD1306_command ( 0x2E );             
 115   SSD1306_command ( OLED_CMD_DISPLAY_ON ); 
 116   
 117 } 
118 
 119 void  SSD1306_command ( uint8_t  command ) 
120 { 
121   i2c_start_wait ( 0x78 ); 
 122   i2c_write ( 0x00 ); 
 123   i2c_write ( command ); 
 124   i2c_stop (); 
 125 } 
126 
 127 void  InvertDisplay ( uint8_t  i ) 
128 { 
129   if  ( i ) 
 130   { 
 131     SSD1306_command ( 0xA7 ); 
 132   } 
 133   else 
 134   { 
 135     SSD1306_command ( 0xA6 ); 
 136   } 
 137 } 
138 
 139 void  drawPixel ( int16_t  x ,  int16_t  y ) 
140 { 
141   Buffer [ x + ( y / 8 )  *  128 ]  |=  ( 1  <<  ( y  &  7 )); 
 142 } 
143 
 144 void  clearBuffer ( uint8_t  * buffer ) 
145 { 
146   memset ( buffer ,  0 ,  1024 ); 
 147 } 
148 
 149 void  drawBuffer ( uint8_t  * buffer ) 
150 { 
151   SSD1306_command ( OLED_CMD_SET_COLUMN_RANGE ); 
 152   SSD1306_command ( 0 ); 
 153   SSD1306_command ( 127 ); 
 154   SSD1306_command ( OLED_CMD_SET_PAGE_RANGE ); 
 155   SSD1306_command ( 0 ); 
 156   SSD1306_command ( 7 ); 
 157   
 158   uint8_t  twbrbackup  =  TWBR ; 
 159   
 160   TWBR  =  12 ; 
 161   
 162   for  ( uint16_t  i = 0 ;  i < 1024 ;  i ++ ) 
 163   { 
 164     i2c_start_wait ( 0x78 ); 
 165     i2c_write ( 0x40 ); 
 166     for  ( uint8_t  x = 0 ;  x < 16 ;  x ++ ) 
 167     { 
 168       i2c_write ( buffer [ i ]); 
 169       i ++ ; 
 170     } 
 171     i -- ; 
 172     i2c_stop (); 
 173   } 
 174   
 175   TWBR  =  twbrbackup ; 
 176 } 
177 
 178 void  drawChar ( unsigned  char  column ,  unsigned  char  line ,  unsigned  char  letter ,  uint8_t  * buffer ) 
179 { 
180   uint8_t  ascii_offset  =  32 ; 
 181   
 182   for  ( uint8_t  i  =  0 ;  i < 5 ;  i ++ ) 
 183   { 
 184     buffer [ i  +  (( line  *  128 )  +  column )]  =  Ascii_1 [ letter - ascii_offset ][ i ]; 
 185   } 
 186 } 
187 
 188 void  drawString ( uint8_t  column ,  uint8_t  line ,  char  * string ,  uint8_t  * buffer ) 
189 { 
190   uint8_t  i  =  0 ; 
 191   
 192   while  ( string [ 0 ]  !=  0 ) 
 193   { 
 194     drawChar ( column  +  ( 5  *  i ),  line ,  ( string [ 0 ]),  buffer ); 
 195     string ++ ; 
 196     i ++ ; 
 197   } 
 198   drawBuffer ( buffer ); 
 199 } 
STler schrieb: >> Woran könnte das liegen? 
> 
> An Dir 
Davon gehe ich im Moment auch eher aus.
Als I2C Bibliothek benutze ich die von P. Fleury 
   
  
  
 
      
      
  
  
    
      von
      
        STler  (Gast)
      
      
       
    
    
      07.12.2016 07:08 
    
     
  
  
      Marco G. schrieb: > Oja, sorry vergessen anzuhängen. Hier der Inhalt der Lib. 
Nö. Wo ist Ascii_1?
Bitte vollständig. 
  
  
 
      
      
  
  
  
  
      1 /* 
2  * Font.h 
3  * 
4  * Created: 02.12.2016 11:05:51 
5  *  Author:  
6  */  
7 
 8 
 9 #ifndef FONT_H_ 
10 #define FONT_H_ 
11 
 12 extern  unsigned  char  Ascii_1 [ 97 ][ 5 ] = {      // Refer to "Times New Roman" Font Database... 
13   //   Basic Characters 
 14   { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 },      //   (  0)    - 0x0000 Empty set 
 15   { 0x00 , 0x00 , 0x4F , 0x00 , 0x00 },      //   (  1)  ! - 0x0021 Exclamation Mark 
 16   { 0x00 , 0x07 , 0x00 , 0x07 , 0x00 },      //   (  2)  " - 0x0022 Quotation Mark 
 17   { 0x14 , 0x7F , 0x14 , 0x7F , 0x14 },      //   (  3)  # - 0x0023 Number Sign 
 18   { 0x24 , 0x2A , 0x7F , 0x2A , 0x12 },      //   (  4)  $ - 0x0024 Dollar Sign 
 19   { 0x23 , 0x13 , 0x08 , 0x64 , 0x62 },      //   (  5)  % - 0x0025 Percent Sign 
 20   { 0x36 , 0x49 , 0x55 , 0x22 , 0x50 },      //   (  6)  & - 0x0026 Ampersand 
 21   { 0x00 , 0x05 , 0x03 , 0x00 , 0x00 },      //   (  7)  ' - 0x0027 Apostrophe 
 22   { 0x00 , 0x1C , 0x22 , 0x41 , 0x00 },      //   (  8)  ( - 0x0028 Left Parenthesis 
 23   { 0x00 , 0x41 , 0x22 , 0x1C , 0x00 },      //   (  9)  ) - 0x0029 Right Parenthesis 
 24   { 0x14 , 0x08 , 0x3E , 0x08 , 0x14 },      //   ( 10)  * - 0x002A Asterisk 
 25   { 0x08 , 0x08 , 0x3E , 0x08 , 0x08 },      //   ( 11)  + - 0x002B Plus Sign 
 26   { 0x00 , 0x50 , 0x30 , 0x00 , 0x00 },      //   ( 12)  , - 0x002C Comma 
 27   { 0x08 , 0x08 , 0x08 , 0x08 , 0x08 },      //   ( 13)  - - 0x002D Hyphen-Minus 
 28   { 0x00 , 0x60 , 0x60 , 0x00 , 0x00 },      //   ( 14)  . - 0x002E Full Stop 
 29   { 0x20 , 0x10 , 0x08 , 0x04 , 0x02 },      //   ( 15)  / - 0x002F Solidus 
 30   { 0x3E , 0x51 , 0x49 , 0x45 , 0x3E },      //   ( 16)  0 - 0x0030 Digit Zero 
 31   { 0x00 , 0x42 , 0x7F , 0x40 , 0x00 },      //   ( 17)  1 - 0x0031 Digit One 
 32   { 0x42 , 0x61 , 0x51 , 0x49 , 0x46 },      //   ( 18)  2 - 0x0032 Digit Two 
 33   { 0x21 , 0x41 , 0x45 , 0x4B , 0x31 },      //   ( 19)  3 - 0x0033 Digit Three 
 34   { 0x18 , 0x14 , 0x12 , 0x7F , 0x10 },      //   ( 20)  4 - 0x0034 Digit Four 
 35   { 0x27 , 0x45 , 0x45 , 0x45 , 0x39 },      //   ( 21)  5 - 0x0035 Digit Five 
 36   { 0x3C , 0x4A , 0x49 , 0x49 , 0x30 },      //   ( 22)  6 - 0x0036 Digit Six 
 37   { 0x01 , 0x71 , 0x09 , 0x05 , 0x03 },      //   ( 23)  7 - 0x0037 Digit Seven 
 38   { 0x36 , 0x49 , 0x49 , 0x49 , 0x36 },      //   ( 24)  8 - 0x0038 Digit Eight 
 39   { 0x06 , 0x49 , 0x49 , 0x29 , 0x1E },      //   ( 25)  9 - 0x0039 Dight Nine 
 40   { 0x00 , 0x36 , 0x36 , 0x00 , 0x00 },      //   ( 26)  : - 0x003A Colon 
 41   { 0x00 , 0x56 , 0x36 , 0x00 , 0x00 },      //   ( 27)  ; - 0x003B Semicolon 
 42   { 0x08 , 0x14 , 0x22 , 0x41 , 0x00 },      //   ( 28)  < - 0x003C Less-Than Sign 
 43   { 0x14 , 0x14 , 0x14 , 0x14 , 0x14 },      //   ( 29)  = - 0x003D Equals Sign 
 44   { 0x00 , 0x41 , 0x22 , 0x14 , 0x08 },      //   ( 30)  > - 0x003E Greater-Than Sign 
 45   { 0x02 , 0x01 , 0x51 , 0x09 , 0x06 },      //   ( 31)  ? - 0x003F Question Mark 
 46   { 0x32 , 0x49 , 0x79 , 0x41 , 0x3E },      //   ( 32)  @ - 0x0040 Commercial At 
 47   { 0x7E , 0x11 , 0x11 , 0x11 , 0x7E },      //   ( 33)  A - 0x0041 Latin Capital Letter A 
 48   { 0x7F , 0x49 , 0x49 , 0x49 , 0x36 },      //   ( 34)  B - 0x0042 Latin Capital Letter B 
 49   { 0x3E , 0x41 , 0x41 , 0x41 , 0x22 },      //   ( 35)  C - 0x0043 Latin Capital Letter C 
 50   { 0x7F , 0x41 , 0x41 , 0x22 , 0x1C },      //   ( 36)  D - 0x0044 Latin Capital Letter D 
 51   { 0x7F , 0x49 , 0x49 , 0x49 , 0x41 },      //   ( 37)  E - 0x0045 Latin Capital Letter E 
 52   { 0x7F , 0x09 , 0x09 , 0x09 , 0x01 },      //   ( 38)  F - 0x0046 Latin Capital Letter F 
 53   { 0x3E , 0x41 , 0x49 , 0x49 , 0x7A },      //   ( 39)  G - 0x0047 Latin Capital Letter G 
 54   { 0x7F , 0x08 , 0x08 , 0x08 , 0x7F },      //   ( 40)  H - 0x0048 Latin Capital Letter H 
 55   { 0x00 , 0x41 , 0x7F , 0x41 , 0x00 },      //   ( 41)  I - 0x0049 Latin Capital Letter I 
 56   { 0x20 , 0x40 , 0x41 , 0x3F , 0x01 },      //   ( 42)  J - 0x004A Latin Capital Letter J 
 57   { 0x7F , 0x08 , 0x14 , 0x22 , 0x41 },      //   ( 43)  K - 0x004B Latin Capital Letter K 
 58   { 0x7F , 0x40 , 0x40 , 0x40 , 0x40 },      //   ( 44)  L - 0x004C Latin Capital Letter L 
 59   { 0x7F , 0x02 , 0x0C , 0x02 , 0x7F },      //   ( 45)  M - 0x004D Latin Capital Letter M 
 60   { 0x7F , 0x04 , 0x08 , 0x10 , 0x7F },      //   ( 46)  N - 0x004E Latin Capital Letter N 
 61   { 0x3E , 0x41 , 0x41 , 0x41 , 0x3E },      //   ( 47)  O - 0x004F Latin Capital Letter O 
 62   { 0x7F , 0x09 , 0x09 , 0x09 , 0x06 },      //   ( 48)  P - 0x0050 Latin Capital Letter P 
 63   { 0x3E , 0x41 , 0x51 , 0x21 , 0x5E },      //   ( 49)  Q - 0x0051 Latin Capital Letter Q 
 64   { 0x7F , 0x09 , 0x19 , 0x29 , 0x46 },      //   ( 50)  R - 0x0052 Latin Capital Letter R 
 65   { 0x46 , 0x49 , 0x49 , 0x49 , 0x31 },      //   ( 51)  S - 0x0053 Latin Capital Letter S 
 66   { 0x01 , 0x01 , 0x7F , 0x01 , 0x01 },      //   ( 52)  T - 0x0054 Latin Capital Letter T 
 67   { 0x3F , 0x40 , 0x40 , 0x40 , 0x3F },      //   ( 53)  U - 0x0055 Latin Capital Letter U 
 68   { 0x1F , 0x20 , 0x40 , 0x20 , 0x1F },      //   ( 54)  V - 0x0056 Latin Capital Letter V 
 69   { 0x3F , 0x40 , 0x38 , 0x40 , 0x3F },      //   ( 55)  W - 0x0057 Latin Capital Letter W 
 70   { 0x63 , 0x14 , 0x08 , 0x14 , 0x63 },      //   ( 56)  X - 0x0058 Latin Capital Letter X 
 71   { 0x07 , 0x08 , 0x70 , 0x08 , 0x07 },      //   ( 57)  Y - 0x0059 Latin Capital Letter Y 
 72   { 0x61 , 0x51 , 0x49 , 0x45 , 0x43 },      //   ( 58)  Z - 0x005A Latin Capital Letter Z 
 73   { 0x00 , 0x7F , 0x41 , 0x41 , 0x00 },      //   ( 59)  [ - 0x005B Left Square Bracket 
 74   { 0x02 , 0x04 , 0x08 , 0x10 , 0x20 },      //   ( 60)  \ - 0x005C Reverse Solidus 
 75   { 0x00 , 0x41 , 0x41 , 0x7F , 0x00 },      //   ( 61)  ] - 0x005D Right Square Bracket 
 76   { 0x04 , 0x02 , 0x01 , 0x02 , 0x04 },      //   ( 62)  ^ - 0x005E Circumflex Accent 
 77   { 0x40 , 0x40 , 0x40 , 0x40 , 0x40 },      //   ( 63)  _ - 0x005F Low Line 
 78   { 0x01 , 0x02 , 0x04 , 0x00 , 0x00 },      //   ( 64)  ` - 0x0060 Grave Accent 
 79   { 0x20 , 0x54 , 0x54 , 0x54 , 0x78 },      //   ( 65)  a - 0x0061 Latin Small Letter A 
 80   { 0x7F , 0x48 , 0x44 , 0x44 , 0x38 },      //   ( 66)  b - 0x0062 Latin Small Letter B 
 81   { 0x38 , 0x44 , 0x44 , 0x44 , 0x20 },      //   ( 67)  c - 0x0063 Latin Small Letter C 
 82   { 0x38 , 0x44 , 0x44 , 0x48 , 0x7F },      //   ( 68)  d - 0x0064 Latin Small Letter D 
 83   { 0x38 , 0x54 , 0x54 , 0x54 , 0x18 },      //   ( 69)  e - 0x0065 Latin Small Letter E 
 84   { 0x08 , 0x7E , 0x09 , 0x01 , 0x02 },      //   ( 70)  f - 0x0066 Latin Small Letter F 
 85   { 0x06 , 0x49 , 0x49 , 0x49 , 0x3F },      //   ( 71)  g - 0x0067 Latin Small Letter G 
 86   { 0x7F , 0x08 , 0x04 , 0x04 , 0x78 },      //   ( 72)  h - 0x0068 Latin Small Letter H 
 87   { 0x00 , 0x44 , 0x7D , 0x40 , 0x00 },      //   ( 73)  i - 0x0069 Latin Small Letter I 
 88   { 0x20 , 0x40 , 0x44 , 0x3D , 0x00 },      //   ( 74)  j - 0x006A Latin Small Letter J 
 89   { 0x7F , 0x10 , 0x28 , 0x44 , 0x00 },      //   ( 75)  k - 0x006B Latin Small Letter K 
 90   { 0x00 , 0x41 , 0x7F , 0x40 , 0x00 },      //   ( 76)  l - 0x006C Latin Small Letter L 
 91   { 0x7C , 0x04 , 0x18 , 0x04 , 0x7C },      //   ( 77)  m - 0x006D Latin Small Letter M 
 92   { 0x7C , 0x08 , 0x04 , 0x04 , 0x78 },      //   ( 78)  n - 0x006E Latin Small Letter N 
 93   { 0x38 , 0x44 , 0x44 , 0x44 , 0x38 },      //   ( 79)  o - 0x006F Latin Small Letter O 
 94   { 0x7C , 0x14 , 0x14 , 0x14 , 0x08 },      //   ( 80)  p - 0x0070 Latin Small Letter P 
 95   { 0x08 , 0x14 , 0x14 , 0x18 , 0x7C },      //   ( 81)  q - 0x0071 Latin Small Letter Q 
 96   { 0x7C , 0x08 , 0x04 , 0x04 , 0x08 },      //   ( 82)  r - 0x0072 Latin Small Letter R 
 97   { 0x48 , 0x54 , 0x54 , 0x54 , 0x20 },      //   ( 83)  s - 0x0073 Latin Small Letter S 
 98   { 0x04 , 0x3F , 0x44 , 0x40 , 0x20 },      //   ( 84)  t - 0x0074 Latin Small Letter T 
 99   { 0x3C , 0x40 , 0x40 , 0x20 , 0x7C },      //   ( 85)  u - 0x0075 Latin Small Letter U 
 100   { 0x1C , 0x20 , 0x40 , 0x20 , 0x1C },      //   ( 86)  v - 0x0076 Latin Small Letter V 
 101   { 0x3C , 0x40 , 0x30 , 0x40 , 0x3C },      //   ( 87)  w - 0x0077 Latin Small Letter W 
 102   { 0x44 , 0x28 , 0x10 , 0x28 , 0x44 },      //   ( 88)  x - 0x0078 Latin Small Letter X 
 103   { 0x0C , 0x50 , 0x50 , 0x50 , 0x3C },      //   ( 89)  y - 0x0079 Latin Small Letter Y 
 104   { 0x44 , 0x64 , 0x54 , 0x4C , 0x44 },      //   ( 90)  z - 0x007A Latin Small Letter Z 
 105   { 0x00 , 0x08 , 0x36 , 0x41 , 0x00 },      //   ( 91)  { - 0x007B Left Curly Bracket 
 106   { 0x00 , 0x00 , 0x7F , 0x00 , 0x00 },      //   ( 92)  | - 0x007C Vertical Line 
 107   { 0x00 , 0x41 , 0x36 , 0x08 , 0x00 },      //   ( 93)  } - 0x007D Right Curly Bracket 
 108   { 0x02 , 0x01 , 0x02 , 0x04 , 0x02 },      //   ( 94)  ~ - 0x007E Tilde 
 109   { 0x08 , 0x0C , 0x0E , 0x0C , 0x08 },      //   ( 95)  upward facing triangle/arrow 
 110   { 0x08 , 0x18 , 0x38 , 0x18 , 0x08 },      //   ( 96)  downward facing triangle/arrow 
 111 }; 
112 
 113 
 114 
 115 
 116 #endif  /* FONT_H_ */ 
 
  
  
 
      
      
  
  
    
      von
      
        john doe  (Gast)
      
      
       
    
    
      07.12.2016 09:32 
    
     
  
  
      Also der Quelltext sieht aus wie zurechtgestümpert aus irgendwelchen 
Arduino-Bibs.
Mal ist buffer als Argument variabel, dann in drawPixel wieder fest auf 
nur einem Buffer.
Dann kommen solch abenteuerliche Konstruktionen wie die "while 
(string[0] != 0)".
An Deiner Stelle würde ich erstmal damit aufräumen.
Egal - hast Du auch ein komplettes (kompilierfähiges) Beispiel?
Ich sehe da keine Aufrufe, keine main, kein itoa. 
   
  
  
 
      
      
  
  
  
  
      Das stimmt, es sind Teile aus der Arduino-Lib, die ich noch mal 
aufräumen muss. Ich wollte das aber erst einmal soweit lauffähig haben, 
bevor ich noch mal daran rumoptimiere.
bisher hatte ich auch nur die Bibliothek gepostet nicht das eigentliche 
Programm.
 1 /* 
2  * I2C_LCD.c 
3  * 
4  * Created: 02.12.2016 10:55:04 
5  * Author :  
6  */  
7 
 8 #define F_CPU 8e6 
9 
 10 #include  <avr/io.h> 
11 #include  <avr/eeprom.h> 
12 #include  <avr/pgmspace.h> 
13 #include  <util/delay.h> 
14 #include  <stdlib.h> 
15 #include  <string.h> 
16 #include  "i2c.h" 
17 #include  "SSD1306.h" 
18 #include  "light_ws2812.h" 
19 
 20 struct  cRGB  led [ 40 ]; 
21 
 22 void  UpdateScreen ( uint8_t  red ,  uint8_t  green ,  uint8_t  blue ); 
23 
 24 
 25 #define OLED_CONTROL_BYTE_CMD_SINGLE  0x80 
26 #define OLED_CONTROL_BYTE_CMD_STREAM  0x00 
27 #define OLED_CONTROL_BYTE_DATA_STREAM  0x40 
28 
 29 #define OLED_CMD_SET_CONTRAST      0x81   
30 #define OLED_CMD_DISPLAY_RAM      0xA4 
31 #define OLED_CMD_DISPLAY_ALLON      0xA5 
32 #define OLED_CMD_DISPLAY_NORMAL      0xA6 
33 #define OLED_CMD_DISPLAY_INVERTED     0xA7 
34 #define OLED_CMD_DISPLAY_OFF      0xAE 
35 #define OLED_CMD_DISPLAY_ON        0xAF 
36 
 37 
 38 #define OLED_CMD_SET_MEMORY_ADDR_MODE  0x20   
39 #define OLED_CMD_SET_COLUMN_RANGE    0x21   
40 #define OLED_CMD_SET_PAGE_RANGE      0x22  
41 
 42 #define OLED_CMD_SET_DISPLAY_START_LINE  0x40 
43 #define OLED_CMD_SET_SEGMENT_REMAP    0xA1 
44 #define OLED_CMD_SET_MUX_RATIO      0xA8   
45 
 46 #define OLED_CMD_SET_COM_SCAN_MODE    0xC8 
47 #define OLED_CMD_SET_DISPLAY_OFFSET    0xD3   
48 #define OLED_CMD_SET_COM_PIN_MAP    0xDA   
49 
 50 #define OLED_CMD_SET_DISPLAY_CLK_DIV  0xD5   
51 #define OLED_CMD_SET_PRECHARGE      0xD9   
52 #define OLED_CMD_SET_VCOMH_DESELCT    0xDB   
53 
 54 #define OLED_CMD_SET_CHARGE_PUMP    0x8D   
55 
 56 #define OLED_CMD_NOP           0xE3 
57 
 58 #define DevSSD1306  0x78       
59 
 60 uint8_t  counter_red  =  255 ; 
61   
 62 unsigned  char  buffer  []  =  { 0x00 }; 
63 char  Red [ 3 ],  Green [ 3 ],  Blue [ 3 ]; 
64 
 65 unsigned  char  mie []  =  { 
66   0x00 ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE , 
 67   0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE , 
 68   0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE , 
 69   0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE , 
 70   0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE , 
 71   0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE , 
 72   0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE , 
 73   0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0xFE ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 74   0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 75   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x3F ,  0x0F ,  0x0F ,  0x0F , 
 76   0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 77   0xFF ,  0x3F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x1F ,  0xFF ,  0xFF ,  0xFF , 
 78   0xFF ,  0x7F ,  0x3F ,  0x1F ,  0x1F ,  0x0F ,  0x0F ,  0x0F ,  0x1F ,  0x1F ,  0x3F ,  0x7F ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 79   0xFF ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F , 
 80   0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0x0F ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 81   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 82   0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 83   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x7F ,  0x1F ,  0x07 ,  0x01 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 84   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x3F ,  0x0F ,  0x03 , 
 85   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF , 
 86   0xF1 ,  0xC0 ,  0x80 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x80 ,  0xC0 ,  0xF1 ,  0xFF ,  0xFF ,  0xFF , 
 87   0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 , 
 88   0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xE0 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 89   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 90   0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 91   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x1F ,  0x07 ,  0x01 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 92   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0x7F ,  0x1F ,  0x07 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 93   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF , 
 94   0xFF ,  0xFF ,  0x3F ,  0x3F ,  0x3F ,  0x3E ,  0x3E ,  0x3E ,  0x3F ,  0x3F ,  0x3F ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 95   0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x3F ,  0x3F ,  0x3F ,  0x3F ,  0x3F , 
 96   0x3F ,  0x3F ,  0x3F ,  0x3F ,  0x3F ,  0x3F ,  0x3F ,  0x3F ,  0x3F ,  0x3F ,  0x3F ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 97   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 98   0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 99   0xFF ,  0x3F ,  0x0F ,  0x03 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x80 ,  0xE0 ,  0xF8 ,  0x00 ,  0x00 , 
 100   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x07 ,  0x01 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 101   0xC0 ,  0xF0 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF , 
 102   0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x18 ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 103   0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 104   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 105   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 106   0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x7F ,  0x1F ,  0x03 , 
 107   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xC0 ,  0xF8 ,  0xFE ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 , 
 108   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xC0 ,  0xF0 ,  0xFC ,  0xFF , 
 109   0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF , 
 110   0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x31 ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 111   0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 112   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 113   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 114   0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x7F ,  0x1F ,  0x07 ,  0x01 ,  0x00 ,  0x00 ,  0x00 , 
 115   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xC0 ,  0xF0 ,  0xFC ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 , 
 116   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x80 ,  0xF0 ,  0xFC ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 117   0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF , 
 118   0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x33 ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 119   0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 120   0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 121   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 , 
 122   0x00 ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC , 
 123   0xFC ,  0xFC ,  0xFC ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xF8 ,  0xF8 , 
 124   0xF8 ,  0xF8 ,  0xF8 ,  0xF8 ,  0xF8 ,  0xF8 ,  0xFC ,  0xFE ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 125   0xFF ,  0xFF ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFF ,  0xFF ,  0xFF , 
 126   0xFF ,  0xFF ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 127   0xFF ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC , 
 128   0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFC ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF , 
 129   0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0xFF ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 ,  0x00 
 130 };   
131 
 132 
 133 int  main ( void ) 
134 { 
135   SSD1306_init (); 
 136   clearBuffer ( buffer ); 
 137   drawBuffer ( mie );   
 138   _delay_ms ( 2500 ); 
 139   
 140     while  ( 1 )  
 141     { 
 142     for  ( uint8_t  i  =  0 ;  i  <  255 ;  i ++ ) 
 143     { 
 144 
 145       for  ( uint8_t  j  =  0 ;  j  <  40 ;  j ++ ) 
 146       { 
 147         led [ j ]. r = counter_red ; led [ j ]. g = 127 ; led [ j ]. b = i ;  
 148         ws2812_setleds ( led , 40 ); 
 149       } 
 150       
 151       UpdateScreen ( counter_red ,  127 ,  i ); 
 152       counter_red -- ; 
 153       
 154           } 
 155     
 156     } 
 157 } 
158 
 159 void  UpdateScreen ( uint8_t  red ,  uint8_t  green ,  uint8_t  blue ) 
160 { 
161   itoa ( red ,  Red ,  10 ); 
 162   itoa ( green ,  Green ,  10 ); 
 163   itoa ( blue ,  Blue ,  10 ); 
 164     
 165   drawString ( 10 ,  2 ,  "Red: " ,  buffer ); 
 166   drawString ( 45 ,  2 ,  Red ,  buffer ); 
 167   drawString ( 10 ,  3 ,  "Green: " ,  buffer ); 
 168   drawString ( 45 ,  3 ,  Green ,  buffer ); 
 169   drawString ( 10 ,  4 ,  "Blue: " ,  buffer ); 
 170   drawString ( 45 ,  4 ,  Blue ,  buffer );   
 171   
 172 } 
 
  
  
 
      
      
  
  
    
      von
      
        john doe  (Gast)
      
      
       
    
    
      07.12.2016 10:06 
    
     
  
  
      clearBuffer(buffer);
  drawBuffer(mie);
buffer? mie? 
   
  
  
 
      
      
  
  
  
  
      1 char  *   itoa  (  int  value ,  char  *  str ,  int  base  ); 
 str should be an array long enough to contain any possible value  
Ein char (Wertebereich 0 - 255 oder -127 bis 127, je nachdem - merkst Du 
was, da ist u.U. ein Vorzeichen dabei?) braucht als ASCII-String welche 
maximale Länge?
Hinweis: 1 char  Red [ 3 ],  Green [ 3 ],  Blue [ 3 ]; 
ist jedenfalls falsch. Wie wird doch gleich bei einem C-String das Ende 
gekennzeichnet? 
   
  
  
 
      
      
  
  
  
  
      john doe schrieb: > clearBuffer(buffer); 
>   drawBuffer(mie); 
> 
> buffer? mie? 
mie ist ein logo was angezeigt werden soll und wird nicht verändert. Das 
logo wird dann durch einen dynamischen Inhalt abgelöst, der in buffer 
geschrieben wird.
Markus F. schrieb: > Wie wird doch gleich bei einem C-String das Ende 
> gekennzeichnet? 
Durch eine Null-Terminierung. Also brauch ich noch einen weiteren 
Array-Platz, am besten also char red[5].
Dies ist nicht der Fehler, auch wenn ich jedem char 10Mögliche Elemente 
ermögliche, tritt der Fehler auf. 
  
  
 
      
      
  
  
  
  
      Marco G. schrieb: > Durch eine Null-Terminierung. Also brauch ich noch einen weiteren 
> Array-Platz, am besten also char red[5]. 
> 
richtig.
> Dies ist nicht der Fehler, auch wenn ich jedem char 10Mögliche Elemente 
> ermögliche, tritt der Fehler auf. 
Das war ein  Fehler. Als nächstes darfst Du darüber sinnieren, wieviele 
Elemente
1 unsigned  char  buffer  []  =  { 0x00 }; 
wohl hat und wieviele Elemente drawChar() wohl braucht, um vernünftig zu 
funktionieren. 
   
  
  
 
      
      
  
  
  
  
      Ich brauche die Anzahl der Pixel als Elemente, also in diesem Fall 1 char  buffer [ 1024 ]  =  { 0x00 }; 
Wfenn ich das dahingehend ändere stimmt die Darstellung auch...
Danke für die Hilfe 
   
  
  
 
    
    
        Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.