Professional Documents
Culture Documents
LCD Seno
LCD Seno
u08 oldbuffer[128];
u08 newbuffer[128];
DDRB=0x00;
PORTB=0xff;
//initialize
//uartInit();
timerInit();
a2dInit();
/* Inicializacion del controlador Grafico */
lcd_initialise();
/* Limpiando la Ram Grafica */
lcd_clear_graphics();
/* Limpiando RAM de TEXTO */
lcd_clear_text();
for(xg=-3.1446;xg<=3.1416;xg=xg+0.05)
{
y=20*cos(xg);
y=y+32;
x=x+0.5;
lcd_set_pixel(x,y);
if(x>=128)
{
x=0;
lcd_clear_graphics();
}
// lcd_delay100ms();
}
}
return 0;
}
void oscope(void)
{
u08 i=0;
for(i=0; i<128; i++)
oldbuffer[i] = newbuffer[i];
for(i=0; i<128; i++)
newbuffer[i] = a2dConvert8bit(0);
for(i=0; i<128; i++)
{
lcd_clear_pixel(i,oldbuffer[i]>>2);
lcd_set_pixel(i,newbuffer[i]>>2);
}
}
void rprintfFloatG(char numDigits,double x)
{
unsigned char firstplace = FALSE;
unsigned char negative;
unsigned char i, digit;
double place = 1.0;
// save sign
negative = (x<0);
//convert to absolute value
x = (x>0)?(x):(-x);
//print digits
for(i=0; i<numDigits;i++)
{
digit =(int)(x/place);
if(digit | firstplace | (place ==1.0))
{
firstplace = TRUE;
rprintfChar(digit+0x30);
}
else rprintfChar(' ');
if(place ==1.0)
{
rprintfChar('.');
}
x=x-digit*place;
place =place/10.0;
}
}