Advertisement
jh_elec

Untitled

Feb 14th, 2018
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. void glcdScrollMsg(uint8_t posX, char *msg)
  2. {
  3.     #define DISPLAY_WIDTH   26
  4.    
  5.     static int8_t x = DISPLAY_WIDTH;
  6.     uint8_t col = 0;
  7.        
  8.     if (x-- <= (int8_t)strlen(msg)*-1)x = 26;
  9.    
  10.     glcdGotoXY(posX,spalte=0);
  11.    
  12.     if (x>=0)
  13.     {
  14.         while((col++ < x) && (col < (DISPLAY_WIDTH)))
  15.         {
  16.             glcdPutc(' ',posX,spalte++);
  17.         }
  18.        
  19.         while ((*msg) && (col++ < (DISPLAY_WIDTH)))
  20.         {
  21.             glcdPutc(*msg++,posX,spalte++);
  22.         }
  23.        
  24.         while (col++ < (DISPLAY_WIDTH))
  25.         {
  26.             glcdPutc(' ',posX,spalte++);
  27.         }
  28.     }
  29.     else
  30.     {
  31.         if ((x+strlen(msg)) <= 0)
  32.         {
  33.             while (col++ < (DISPLAY_WIDTH))
  34.             {
  35.                 glcdPutc(' ',posX,spalte++);
  36.             }
  37.         }
  38.         else
  39.         {
  40.             uint8_t i = abs(x);
  41.             while ((msg[i]) && (col++ < (DISPLAY_WIDTH)))
  42.             {
  43.                 glcdPutc(msg[i++],posX,spalte++);  
  44.             }
  45.            
  46.             while (col++ < (DISPLAY_WIDTH))
  47.             {
  48.                 glcdPutc(' ',posX,spalte++);   
  49.             }
  50.         }
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement