+ Post New Thread
Page 1 of 2 1 2 LastLast
Results 1 to 20 of 22
  1. #1
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Toggle screen back and forth

    Hi,

    I'm trying to use an if else statement in microC to toggle an LCD screen between two states.

    Unfortunately I cannot get this to work,

    The code under the if statement cycles between 3 different messages and when the button tied to RB7 makes RB7 go low, it's supposed to make the screen display the string "Screen Toggled".

    What is happening instead is that the 3 different messages keep cycling as if the button isn't being pushed and the code never goes into the else part of the code.

    Attached is the mikroC project as well as the proteous project.

    I'd appreciate any help, thank you.LCDtoggle.rar

    This is what the code looks like,

    Code:
    // Lcd module connections
    sbit LCD_RS at RD0_bit;
    sbit LCD_EN at RD1_bit;
    sbit LCD_D4 at RD2_bit;
    sbit LCD_D5 at RD3_bit;
    sbit LCD_D6 at RD4_bit;
    sbit LCD_D7 at RD5_bit;
    
    sbit LCD_RS_Direction at TRISD0_bit;
    sbit LCD_EN_Direction at TRISD1_bit;
    sbit LCD_D4_Direction at TRISD2_bit;
    sbit LCD_D5_Direction at TRISD3_bit;
    sbit LCD_D6_Direction at TRISD4_bit;
    sbit LCD_D7_Direction at TRISD5_bit;
    // End Lcd module connections
    
    
    void main(){
    
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0b10000000;
          PORTB = 0b00000000;
          TRISD = 0X00;
          PORTD = 0X00;
          
          Lcd_Init();                        // Initialize Lcd
          Lcd_Cmd(_LCD_CLEAR);               // Clear display
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
    
    
          if(PORTB.F7=1)                     // If button is not pushed
          {
          while(1){                          // Repeat sequence
          Lcd_Out(1,6,"Message 1");
          Delay_ms(500);
          Lcd_Out(1,6,"Message 2");
          Delay_ms(500);
          Lcd_Out(1,6,"Message 3");
          Delay_ms(500);
          }
          }
          
          else{                              // If button is pressed
          Delay_ms(100);                     // Debounce
          if(PORTB.F7=0){                    // If button is still pressed
          Lcd_Out(1,2,"Screen Toggled");
          }
          }
    
    
    }

  2. #2
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    Please explain how it has to work.



    •   AltAdvertisment

        
       

  3. #3
    Member level 4
    Points: 1,937, Level: 10
    Achievements:
    7 years registered

    Join Date
    Aug 2008
    Posts
    79
    Helped
    16 / 16
    Points
    1,937
    Level
    10

    Re: Toggle screen back and forth

    if(PORTB.F7=1) // If button is not pushed
    I think this should be
    if(PORTB.F7==1) // If button is not pushed



  4. #4
    Full Member level 1
    Points: 838, Level: 6

    Join Date
    Sep 2014
    Posts
    100
    Helped
    0 / 0
    Points
    838
    Level
    6

    Re: Toggle screen back and forth

    You're having the while(1) loop in wrong place. Now it never goes out of PORTB.F7. Move while like this:
    Code:
    void main(){
    
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0b10000000;
          PORTB = 0b00000000;
          TRISD = 0X00;
          PORTD = 0X00;
          
          Lcd_Init();                        // Initialize Lcd
          Lcd_Cmd(_LCD_CLEAR);               // Clear display
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
    	  
    while(1){
    
          if(PORTB.F7=1)                     // If button is not pushed
          {
                                    // Repeat sequence
          Lcd_Out(1,6,"Message 1");
          Delay_ms(500);
          Lcd_Out(1,6,"Message 2");
          Delay_ms(500);
          Lcd_Out(1,6,"Message 3");
          Delay_ms(500);
          }
          
          
          else{                              // If button is pressed
          Delay_ms(100);                     // Debounce
          if(PORTB.F7=0){                    // If button is still pressed
          Lcd_Out(1,2,"Screen Toggled");
          }
          }
    }
    
    }



  5. #5
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Re: Toggle screen back and forth

    Okay thanks.

    milan.rajik, the idea is to have the screen cycle through the three messages and when RB7 is low, to display a completley different message for as long as the button is held down. Once RB7 goes high again, the program returns to cycling the three first messages again.

    wade_hassler, thanks I made the change.

    Veketti, your suggestion got it to work finally. I also had to add a delay to the else statement to get it to show on screen.

    I've updated the code to be a little bit more intricate and I'm trying to achieve a couple more things but I'm having a new problem.

    Let me explain what the new code does.

    I have added unsigned int var1, var2, var3, and var4.

    If RB7 is high, button not pushed:

    The screen shows text "Total01:" followed by the value of var1.
    500ms Delay
    The screen shows text "Total02:" followed by the value of var2.
    500ms Delay
    The screen shows text "Total03:" followed by the value of var3.
    500ms Delay
    Repeat

    If RB7 button is pushed and as long as it is kept pushed

    var1,var2,var3 are added together and result stored in var4.
    The screen shows text "Gran Total:" followed by the value of var4.
    500ms delay
    Lcd Clear
    Repeat for as long as RB7 is low, if not return to first part of the code.

    The problem is that the values of the variables var1, var2, var3, and var4 do not show up on screen at all even though the text strings do. Here is a screen shot.

    Click image for larger version. 

Name:	TotalsMissing.png 
Views:	1 
Size:	1.9 KB 
ID:	112366Click image for larger version. 

Name:	GrantotalMissing.png 
Views:	1 
Size:	2.1 KB 
ID:	112367

    You can see that the variables aren't printed on the screen at all. What could be causing this? I tried using both Lcd_Out and Lcd_Chr with no success.

    Here is the code and hex. LCDtoggle.hex.tar.gz

    Code:
    void main(){
    
         unsigned int var1=2;
         unsigned int var2=3;
         unsigned int var3=2;
         unsigned int var4=0;
    
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0b10000000;
          PORTB = 0b00000000;
          TRISD = 0X00;
          PORTD = 0X00;
          
          Lcd_Init();                        // Initialize Lcd
          Lcd_Cmd(_LCD_CLEAR);               // Clear display
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
          
    
    
          while(1){
          if(PORTB.F7==1)                     // If button is not pushed
          {                                   // Repeat sequence
          Lcd_Out(1,4,"Total01:");
          Lcd_Chr(1,14,var1);                 // Print value of Var1 on screen
          Delay_ms(500);
          Lcd_Out(1,4,"Total02:");
          Lcd_Chr(1,14,var2);                 // Print value of Var2 on screen
          Delay_ms(500);
          Lcd_Out(1,4,"Total03:");
          Lcd_Chr(1,14,var3);                 // Print value of Var3 on screen
          Delay_ms(500);
          }
          
          else{        			 // If button is pressed
          var4=var1+var2+var3;               // Add var1-3 store result in var 4                         
          Lcd_Out(1,3,"Gran Total:");
          Lcd_Chr(2,6,var4);                 // Print value of var4 on screen
          Delay_ms(500);
          Lcd_Cmd(_LCD_CLEAR);
          }
          }
    
    
    }



  6. #6
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    Try this.

    Code C - [expand]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    unsigned int var1, var2, var3, var4;
    char lcdData[17];
     
    while(1) {
           
           IntToStr(var1, lcdData);
           Lcd_Chr(1,14,var1);
     
           IntToStr(var2, lcdData);
           Lcd_Chr(1,14,var2);
     
           IntToStr(var3, lcdData);
           Lcd_Chr(1,14,var3);
     
           IntToStr(var4, lcdData);
           Lcd_Chr(2,6,var4);
    }



  7. #7
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Re: Toggle screen back and forth

    Okay I tried that with no success, still the same problem, the variables do not appear on screen.

    Here's what the code looks like after adding what you suggested,

    Code:
    void main(){
    
         unsigned int var1=0;
         unsigned int var2=0;
         unsigned int var3=0;
         unsigned int var4=0;
         char lcdData[17];
    
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0b10000000;
          PORTB = 0b00000000;
          TRISD = 0X00;
          PORTD = 0X00;
          
          Lcd_Init();                                       // Initialize Lcd
          Lcd_Cmd(_LCD_CLEAR);                   // Clear display
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
          
    
    
          while(1){
          if(PORTB.F7==1)                        // If button is not pushed
          {                                                 
          Lcd_Out(1,4,"Total-1:");
          IntToStr(var1, lcdData);
          Lcd_Chr(1,14, var1);                 // Print value of Var1 on screen
          Delay_ms(500);                 
          Lcd_Out(1,4,"Total-2:");
          IntToStr(var2, lcdData);
          Lcd_Chr(1,14,var2);                 // Print value of Var2 on screen
          Delay_ms(500);
          Lcd_Out(1,4,"Total-3:");
          IntToStr(var3, lcdData);
          Lcd_Chr(1,14,var3);                 // Print value of Var3 on screen
          Delay_ms(500);
          }
          
          else{                                       // If button is pressed
          var4=var1+var2+var3;
          Lcd_Out(1,3,"Gran Total:");
          IntToStr(var4, lcdData);
          Lcd_Chr(2,6,var4);
          Delay_ms(500);
          Lcd_Cmd(_LCD_CLEAR);
          }
          }
    
    
    }



    •   AltAdvertisment

        
       

  8. #8
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    Sorry my mistake. I copied and pasted your code and modified it earlier but forgot to change LCD_Chr() to LCD_Out(). Here is the working code. To print strings you have to use LCD_Out().

    Code C - [expand]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
    unsigned int var1=0;
    unsigned int var2=0;
    unsigned int var3=0;
    nsigned int var4=0;
    char lcdData[17];
     
    void main(){
        
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0x80;
          PORTB = 0x00;
          TRISD = 0x00;
          PORTD = 0x00;
          
          Lcd_Init();                                       // Initialize Lcd
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
          Lcd_Cmd(_LCD_CLEAR);                   // Clear display
          
          while(1){
          if(PORTB.F7==1)                        // If button is not pushed
          {
        Delay_ms(100);
         if(PORTB.F7==1)                        // If button is not pushed
          {
                                                   
          Lcd_Out(1,4,"Total-1:");
          IntToStr(var1, lcdData);
          Lcd_Out(1,14, var1);                 // Print value of Var1 on screen
          Delay_ms(500);                 
          Lcd_Out(1,4,"Total-2:");
          IntToStr(var2, lcdData);
          Lcd_Out(1,14,var2);                 // Print value of Var2 on screen
          Delay_ms(500);
          Lcd_Out(1,4,"Total-3:");
          IntToStr(var3, lcdData);
          Lcd_Out(1,14,var3);                 // Print value of Var3 on screen
          Delay_ms(500);
        }
          }
          
          else{                                       // If button is pressed
          var4=var1+var2+var3;
          Lcd_Out(1,3,"Gran Total:");
          IntToStr(var4, lcdData);
          Lcd_Out(2,6,var4);
          Delay_ms(500);
          Lcd_Cmd(_LCD_CLEAR);
          }
          }
    }



  9. #9
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Re: Toggle screen back and forth

    Okay, I tried the change and still no luck. Here it is again in case i made any mistake in copying,


    Code:
        void main(){
    
         unsigned int var1=0;
         unsigned int var2=0;
         unsigned int var3=0;
         unsigned int var4=0;
         char lcdData[17];
    
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0b10000000;
          PORTB = 0b00000000;
          TRISD = 0X00;
          PORTD = 0X00;
          
          Lcd_Init();                        // Initialize Lcd
          Lcd_Cmd(_LCD_CLEAR);               // Clear display
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
          
    
          while(1){
          if(PORTB.F7==1)                     // If button is not pushed
          {
          Delay_ms(100);
          if(PORTB.F7==1)
          {                          // Repeat sequence
          Lcd_Out(1,4,"Total-1:");
          IntToStr(var1, lcdData);
          Lcd_Out(1,14, var1);
          Delay_ms(500);                 // Print value of Var1 on screen
          Lcd_Out(1,4,"Total-2:");
          IntToStr(var2, lcdData);
          Lcd_Out(1,14,var2);                 // Print value of Var2 on screen
          Delay_ms(500);
          Lcd_Out(1,4,"Total-3:");
          IntToStr(var3, lcdData);
          Lcd_Out(1,14,var3);                 // Print value of Var3 on screen
          Delay_ms(500);
          }
          }
          
          else{                              // If button is pressed
          var4=var1+var2+var3;
          Lcd_Out(1,3,"Gran Total:");
          IntToStr(var4, lcdData);
          Lcd_Out(2,6,var4);
          Delay_ms(500);
          Lcd_Cmd(_LCD_CLEAR);
          }
          }
    }



  10. #10
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    LcdData is the string. It has to be sent to LCD_Out().

    Oops, I made mistake again.

    Code C - [expand]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
    void main(){
     
         unsigned int var1=0;
         unsigned int var2=0;
         unsigned int var3=0;
         unsigned int var4=0;
         char lcdData[17];
     
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0b10000000;
          PORTB = 0b00000000;
          TRISD = 0X00;
          PORTD = 0X00;
          
          Lcd_Init();                        // Initialize Lcd
          Lcd_Cmd(_LCD_CLEAR);               // Clear display
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
          
     
          while(1){
          if(PORTB.F7==1)                     // If button is not pushed
          {
          Delay_ms(100);
          if(PORTB.F7==1)
          {                          // Repeat sequence
          Lcd_Out(1,4,"Total-1:");
          IntToStr(var1, lcdData);
          Lcd_Out(1,14, lcdData);
          Delay_ms(500);                 // Print value of Var1 on screen
          Lcd_Out(1,4,"Total-2:");
          IntToStr(var2, lcdData);
          Lcd_Out(1,14,lcdData);                 // Print value of Var2 on screen
          Delay_ms(500);
          Lcd_Out(1,4,"Total-3:");
          IntToStr(var3, lcdData);
          Lcd_Out(1,14,lcdData);                 // Print value of Var3 on screen
          Delay_ms(500);
          }
          }
          
          else{                              // If button is pressed
          var4=var1+var2+var3;
          Lcd_Out(1,3,"Gran Total:");
          IntToStr(var4, lcdData);
          Lcd_Out(2,6,lcdData);
          Delay_ms(500);
          Lcd_Cmd(_LCD_CLEAR);
          }
          }
    }



    •   AltAdvertisment

        
       

  11. #11
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Re: Toggle screen back and forth

    Okay that finally got it to work. For some strange reason though, the IF part of the code only started to work after i changed the value of var1 and now no matter what value I give these variables it works fine. Sweet, thanks!

    I have a couple questions.

    Does this mean that the only way to display a variable's numeric vaue is to turn it into a string in mikroC?

    Also what does the number in the brackets mean in char lcdData[17]? I've also seem some examples where a text is decared as txt[] without a number in the brackets. What is the purpose of the brackets?



  12. #12
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    lacData[17] is a array of 17 bytes. It is mentioned in mikroC help file that the char array or string should be 17 bytes long if it has to be used for IntToStr() function and 23 bytes long for FloatToStr() function. Each digit of a number is converted to ascii character and stored in the char array and the array is terminated with a null character to make it a string. Only then it can be printed on LCD.



  13. #13
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Re: Toggle screen back and forth

    Okay thank you for the info.

    While playing around with this new trick I've run into a different problem. Now what seems to be happening is that the displayed integer appears in the completley incorrect part of the screen. For example in the new code below I want to display "ledone" on row 2 column 1 of the display but instead it appers in the middle of the screen while ledtwo is no where to be found.

    See the screen shot:

    Click image for larger version. 

Name:	wrongposition.png 
Views:	1 
Size:	1.3 KB 
ID:	112461

    And here is the code, This is the same project except what is displayed on screen has changed. You can see the command Lcd_Out(2,1, ledone); and Lcd_Out(2,15, ledtwo); setting the positions correctly but it never shows up this way on screen.

    Code:
    
    void main(){
    
         unsigned int led1=5;
         unsigned int led2=3;
         char ledone[17];
         char ledtwo[17];
    
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0b11111110;
          PORTB = 0b00000000;
          TRISD = 0X00;
          PORTD = 0X00;
    
          Lcd_Init();                        // Initialize Lcd
          Lcd_Cmd(_LCD_CLEAR);               // Clear display
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
    
    
    
          while(1){
          if(PORTB.F7==1)                     // If button is not pushed
          {
          Delay_ms(100);
          if(PORTB.F7==1)
          {                                       
          Lcd_Out(1,1,"LED1:");
          Lcd_Out(1,12,"LED2:");
          IntToStr(led1, ledone);
          IntToStr(led2, ledtwo);
          Lcd_Out(2,1, ledone);
          Lcd_Out(2,15, ledtwo);
          }
          }
    
          else{                              // If button is pressed
          Lcd_Cmd(_LCD_CLEAR);
          Lcd_Out(1,5,"ON");
          Delay_ms(500);
          Lcd_Cmd(_LCD_CLEAR);
          }
          }
    
    
    }



  14. #14
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    Before displaying ledone and ledtwo use

    Code C - [expand]
    1
    2
    
    Ltrim(ledone);
    Ltrim(ledtwo);



  15. #15
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Re: Toggle screen back and forth

    Okay thank you that worked perfectly.

    I have another question. Is it possible to display two digit numbers under 10 with a zero infront of them? For example to display "02" instead of just "2"? I much prefer the look of this than a single digit. I know this can be done in MPLAB but can it be done with this program?



  16. #16
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    Try IntToStrWithZeros().



  17. #17
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Re: Toggle screen back and forth

    Thank you! Unfortunately there's too many zeroes! haha It seems it displays every single empty space to it's left. Is there a way to specify the exact number of decimal places?



  18. #18
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    Code C - [expand]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    char tmp[] = "0";
    char tmp2[17];
    char ledone[17];
     
    memset(tmp2, '\0', sizeof(tmp2));
    strcat(tmp2, tmp);
    IntToStr(led1, ledone);
    strcat(tmp2, ledone);
    LCD_Out(2,1,tmp2);



  19. #19
    Junior Member level 3
    Points: 159, Level: 2

    Join Date
    Oct 2014
    Posts
    29
    Helped
    0 / 0
    Points
    159
    Level
    2

    Re: Toggle screen back and forth

    Alright, sorry for the delay!

    I gave it a try but it's not working out as desired. Instead I get only two digits displyed but I get all the spaces where the zeroes used to be included.


    Click image for larger version. 

Name:	InvisibleZeros.png 
Views:	1 
Size:	2.0 KB 
ID:	112684


    Here is the code, I'm not sure if I did it properly. This was a bit confusing for me. Man this is turning out a lot more difficult than I expected!

    Code:
    void main(){
    
         unsigned int led1=1;
         unsigned int led2=2;
         
         char tmp[17]="0";
         char tmp2[17];
         char ledone[17];
         
         char tmp3[17]="0";
         char tmp4[17];
         char ledtwo[17];
    
    
    
          TRISA = 0xFF;
          PORTA = 0x00;
          TRISB = 0b11111110;
          PORTB = 0b00000000;
          TRISD = 0X00;
          PORTD = 0X00;
    
          Lcd_Init();                        // Initialize Lcd
          Lcd_Cmd(_LCD_CLEAR);               // Clear display
          Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
    
    
    
          while(1){
          if(PORTB.F7==1)                     // If button is not pushed
          {
          Delay_ms(100);
          if(PORTB.F7==1)
          {                                       // Repeat sequence
          Lcd_Out(1,1,"LED1");
          Lcd_Out(1,13,"LED2");
          memset(tmp2, '\0', sizeof(tmp2));
          strcat(tmp2, tmp);
          IntToStr(led1, ledone);
          strcat(tmp2, ledone);
          LCD_Out(2,1, tmp2);
          memset(tmp4, '\0', sizeof(tmp4));
          strcat(tmp4, tmp3);
          IntToStr(led2, ledtwo);
          strcat(tmp4, ledtwo);
          LCD_Out(2,15, ledtwo);
          
    
          }
          }
    
          else{                              // If button is pressed
          Lcd_Cmd(_LCD_CLEAR);
          Lcd_Out(1,1,"((TOGGLE))");
          Delay_ms(500);
          Lcd_Cmd(_LCD_CLEAR);
          }
          }
    
    
    }



    •   AltAdvertisment

        
       

  20. #20
    Banned
    Points: 12,436, Level: 26

    Join Date
    Apr 2013
    Posts
    2,528
    Helped
    538 / 538
    Points
    12,436
    Level
    26

    Re: Toggle screen back and forth

    Try this.

    Code C - [expand]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    memset(tmp2, '\0', sizeof(tmp2));
    strcat(tmp2, tmp);
    IntToStr(led1, ledone);
    Ltrim(ledone);
    strcat(tmp2, ledone);
    LCD_Out(2,1, tmp2);
     
    memset(tmp3, '\0', sizeof(tmp4));
    strcat(tmp3, tmp);
    IntToStr(led2, ledtwo);
    Ltrim(ledtwo);
    strcat(tmp3, ledtwo);
    LCD_Out(2,15, ledtwo);



--[[ ]]--