Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

trace a waveform ON GLCD

Status
Not open for further replies.

RISCIT

Junior Member level 1
Junior Member level 1
Joined
Dec 30, 2011
Messages
15
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,441
Hello,


Please some one can give a little part of code to display a waveform like a sinus on a GLCD Graphical?

I know thtat the mathematical equation for the sinus is y=sinx but when i want to translate it in c program to display the sinus on a glcd it does not work


Using PIC16F887 And T6963C Controler 128*64

Code:
void Trace_Sinus(){

char x1 = 0;


do{

 T6963C_line(6, 30, x1,y1, T6963C_WHITE);   // this functions trace a line  6, 30 are the left coord and x1 y1 the right coord
x1++.
y1 = sin(x1);

}
while(x1<128);
 

hello,

sin(x)
x in degrés 0 to 360 or radiant x* PI/180 ?
i don't know your type of LCD,but you can try this:

Code:
maybe include also a library link "math.h" 

char x1,y1 = 0;
float x,y;

do
{
x= (float)x1;
y=sin(x)*30.0+32.0;     // offest 32 and range +-30 around the offset
y1=(int)y;
 T6963C_line(x1, 32, x1,y1, T6963C_WHITE);   // this functions trace a line  6, 30 are the left coord and x1 y1 the right coord
// maybe you have an equivalent of putPixel(x1,y1)  instead of using line function? 
x1++;
}
while(x1<128);
 

hello,

sin(x)
x in degrés 0 to 360 or radiant x* PI/180 ?
i don't know your type of LCD,but you can try this:

Code:
maybe include also a library link "math.h" 

char x1,y1 = 0;
float x,y;

do
{
x= (float)x1;
y=sin(x)*30.0+32.0;     // offest 32 and range +-30 around the offset
y1=(int)y;
 T6963C_line(x1, 32, x1,y1, T6963C_WHITE);   // this functions trace a line  6, 30 are the left coord and x1 y1 the right coord
// maybe you have an equivalent of putPixel(x1,y1)  instead of using line function? 
x1++;
}
while(x1<128);

Thanks


i ve tried your code, it work but i dont really have a sinus, can you give me the code which trace a perfect sinus, the equivalent of putpixel is T6963C_dot(x0, y0, T6963C_WHITE);

i want a sinus with a good space between each period.


Thank you man

- - - Updated - - -

i develop with a t6963C Controler 128*64
 

hello,

I checked sin function argument,it is not in degres
so sin(x*PI/180) is the good way..
I suppose you want a complete sinusoide 0 359° in full width of 128 pixels

do

Code:
char x1,y1 = 0;
float x,y;
float dummy;

do
{
x= (float)x1*360.0/128;  // to show the sinus in correct place along X axis 
y=sin(x*3.14159/180.0); 
// scale value on Y axis .. because sinus allways between -1 and +1
// offest 32 and range +-30 around the offset
dummy=y * 30.0 +32.0;  
y1=(int)dummy;
T6963C_dot(x1, y1, T6963C_WHITE);
x1++;
}
while(x1<128);
while(1);  // terminé

if you want to see more sinusoide, change :
F1=(float)j1*360.0/(128.0*Nb_of_sinusoide);
but figure will be not so sinusoidale with more periodes. (step between points)
 

hello

thank you!

it work pretty good, can you explain the code? why are you multiplicaded y by 30? I know 32 is here for the offset

thanks again
 

Y scale is 64
midle is 32 as the offset
sinus can evoluate from -1 to +1
so to reach the top or the bottom of display (Y axis)
you can add +1*30 or substract -1*30 from the offset

maybe you can multiply by 31 instead of 30
but not 32 because 32+32=64 and i think the Y range of display is 0 to 63
64 overflow !

in X axis you have 128 pixel to represente 360° of One sinusoide
so the elementary step must be 360°/128
or sinus doesn't accept degre ° as argument, so multiply degre by PI()/180 = value in radiants
and after multiply the sinus value by 30 to use the maximum scaling.
 

thank you

i understand now, your explanation helps me well, if i have another questions i will post it here,


have a good night!!
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top