Hi i am using mikroc pro for pic t6963 glcd library to display a set 16 integers as in table as rows and columns, i have used same method to display these variables in the display where i require in (x,y ) positions... mostly all numbers displays correctly , but certain numbers appears as symbols and characters , what is the reason...
controller used pic18f87k90
all variables are declared as
unsigned int Pulse_PickA,Pulse_PickB,Pulse_PickC,Pulse_PickD.
unsigned int Picks4inchA,Picks4inchB,Picks4inchC,Picks4inchD
like these 16 integers . out of 16 , 2 or 3 integers diaplay as symbols or numbers , in ram memory the value is correct as i expect but while displaying alone its not perfect . should i change the way i display this function... please give ur suggetions.
T6963C_box(21+Fi_Xpos, 1+Ypos+(13*2), 21+Fi_Xpos+19, Ypos+(13*2)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/100)%10) +0x30)), 24+Fi_Xpos ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/10)%10) +0x30)), 24+Fi_Xpos+5 ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC)%10) +0x30)), 24+Fi_Xpos+10 ,Ypos+(13*2));
delay_ms(15);
T6963C_box(21+Fi_Xpos, 1+Ypos+(13*3), 21+Fi_Xpos+19, Ypos+(13*3)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickD/100)%10) +0x30)), 24+Fi_Xpos ,Ypos+(13*3));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickD/10)%10) +0x30)), 24+Fi_Xpos+5 ,Ypos+(13*3));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickD)%10) +0x30)), 24+Fi_Xpos+10 ,Ypos+(13*3));
delay_ms(15);
T6963C_box(21+Fi_Xpos, 1+Ypos+(13*4), 21+Fi_Xpos+19, Ypos+(13*4)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickE/100)%10) +0x30)), 24+Fi_Xpos ,Ypos+(13*4));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickE/10)%10) +0x30)), 24+Fi_Xpos+5 ,Ypos+(13*4));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickE)%10) +0x30)), 24+Fi_Xpos+10 ,Ypos+(13*4));
delay_ms(15);
T6963C_box(44+Fi_Xpos, 1+Ypos+(13*0), 44+Fi_Xpos+27, Ypos+(13*0)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchA/10000)%10) +0x30)), 45+Fi_Xpos ,Ypos+(13*0));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchA/1000)%10) +0x30)), 45+Fi_Xpos+5 ,Ypos+(13*0));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchA/100)%10) +0x30)), 45+Fi_Xpos+10 ,Ypos+(13*0));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchA/10)%10) +0x30)), 45+Fi_Xpos+15 ,Ypos+(13*0));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchA)%10) +0x30)), 45+Fi_Xpos+20 ,Ypos+(13*0));
delay_ms(15);
T6963C_box(44+Fi_Xpos, 1+Ypos+(13*1), 44+Fi_Xpos+27, Ypos+(13*1)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchB/10000)%10) +0x30)), 45+Fi_Xpos ,Ypos+(13*1));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchB/1000)%10) +0x30)), 45+Fi_Xpos+5 ,Ypos+(13*1));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchB/100)%10) +0x30)), 45+Fi_Xpos+10 ,Ypos+(13*1));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchB/10)%10) +0x30)), 45+Fi_Xpos+15 ,Ypos+(13*1));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchB)%10) +0x30)), 45+Fi_Xpos+20 ,Ypos+(13*1));
delay_ms(15);
T6963C_box(44+Fi_Xpos, 1+Ypos+(13*2), 44+Fi_Xpos+27, Ypos+(13*2)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchC/10000)%10) +0x30)), 45+Fi_Xpos ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchC/1000)%10) +0x30)), 45+Fi_Xpos+5 ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchC/100)%10) +0x30)), 45+Fi_Xpos+10 ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchC/10)%10) +0x30)), 45+Fi_Xpos+15 ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchC)%10) +0x30)), 45+Fi_Xpos+20 ,Ypos+(13*2));
delay_ms(15);
T6963C_box(44+Fi_Xpos, 1+Ypos+(13*3), 44+Fi_Xpos+27, Ypos+(13*3)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchD/10000)%10) +0x30)), 45+Fi_Xpos ,Ypos+(13*3));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchD/1000)%10) +0x30)), 45+Fi_Xpos+5 ,Ypos+(13*3));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchD/100)%10) +0x30)), 45+Fi_Xpos+10 ,Ypos+(13*3));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchD/10)%10) +0x30)), 45+Fi_Xpos+15 ,Ypos+(13*3));
T6963C_Write_char_adv( ( (char) (((unsigned int)(InchD)%10) +0x30)), 45+Fi_Xpos+20 ,Ypos+(13*3));
delay_ms(15);
t6963 display problem in displaying integers
- IvanJeremic
- mikroElektronika team
- Posts: 316
- Joined: 05 Sep 2022 14:32
Re: t6963 display problem in displaying integers
Hi,
Is it always the same variables that are showing the symbols or does it change overtime?
Regards,
Ivan.
Is it always the same variables that are showing the symbols or does it change overtime?
Regards,
Ivan.
Re: t6963 display problem in displaying integers
it changes der are 16 variables but we cant say this variables causes issues, it changes every time we re program the mcu, but mostly 3 variables gets afftected by this issue and those variables are random..
-
- Posts: 158
- Joined: 24 May 2008 15:55
- Location: Germany
Re: t6963 display problem in displaying integers
Perhaps timing problems.
For a test try the following: set the mcu clock frequency (in edit project) to 4 times the mcu really runs and test again.
If that runs, then better write your own library.
For a test try the following: set the mcu clock frequency (in edit project) to 4 times the mcu really runs and test again.
If that runs, then better write your own library.
Re: t6963 display problem in displaying integers
hi the problem solved now the change i made was instead of typing the to converts as character i used (0x30 ) , now i have changed it to 48, now the code works fine , can i know its the problem with compiler standard or its problem with my approach towards the way i code?.....
problematic one
T6963C_box(21+Fi_Xpos, 1+Ypos+(13*2), 21+Fi_Xpos+19, Ypos+(13*2)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/100)%10) +0x30)), 24+Fi_Xpos ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/10)%10) +0x30)), 24+Fi_Xpos+5 ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC)%10) +0x30)), 24+Fi_Xpos+10 ,Ypos+(13*2));
delay_ms(15);
working one
T6963C_box(21+Fi_Xpos, 1+Ypos+(13*2), 21+Fi_Xpos+19, Ypos+(13*2)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/100)%10) +48)), 24+Fi_Xpos ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/10)%10) +48)), 24+Fi_Xpos+5 ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC)%10) +48)), 24+Fi_Xpos+10 ,Ypos+(13*2));
delay_ms(15);
problematic one
T6963C_box(21+Fi_Xpos, 1+Ypos+(13*2), 21+Fi_Xpos+19, Ypos+(13*2)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/100)%10) +0x30)), 24+Fi_Xpos ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/10)%10) +0x30)), 24+Fi_Xpos+5 ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC)%10) +0x30)), 24+Fi_Xpos+10 ,Ypos+(13*2));
delay_ms(15);
working one
T6963C_box(21+Fi_Xpos, 1+Ypos+(13*2), 21+Fi_Xpos+19, Ypos+(13*2)+10, T6963C_BLACK);
delay_ms(15);
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/100)%10) +48)), 24+Fi_Xpos ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC/10)%10) +48)), 24+Fi_Xpos+5 ,Ypos+(13*2));
T6963C_Write_char_adv( ( (char) (((unsigned int)(Pulse_PickC)%10) +48)), 24+Fi_Xpos+10 ,Ypos+(13*2));
delay_ms(15);
- Tanja_Kovacevic
- mikroElektronika team
- Posts: 98
- Joined: 09 Aug 2021 11:39
Re: t6963 display problem in displaying integers
Hi,
Thank you for sharing your solution with other customers who can face a similar issue.
Kind regards,
Tanja
Thank you for sharing your solution with other customers who can face a similar issue.
Kind regards,
Tanja