You are on page 1of 3

//----- Include Files ---------------------------------------------------------

#include <avr/io.h> // acces to controller I/O


#include <inttypes.h> // integer types
#include <avr/pgmspace.h> // access to program memory
//#include <stdlib.h>
#include "global.h" // include configuraciones globales
#include "uart.h" // include uart function library
#include "rprintf.h" // include printf function library
#include "a2d.h" // include A/D converter funftion library
#include "timer.h" // include timer function library (timing, PWM,etc)
#include "t6963c.h" // definitions and prototypes
#include "math.h"
//----- Inicio de Codigo ------------------------------------------------------------
/* Global Variables */
void oscope(void);
void rprintfFloatG(char numDigits, double x);

u08 oldbuffer[128];
u08 newbuffer[128];

int main (void)


{
float x=0, y; //,ccad;
float xg;

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();

/* Seteando los modods de Texto y Grafico */


lcd_write_command(LCD_DISPLAY_MODES_GRAPHICS_ON |
LCD_DISPLAY_MODES_TEXT_ON);
//Direccionando la salida del printf al LCD
rprintfInit(lcd_write_char);

/* Seteando el puntero a la direccion inicial de graficos */


lcd_write_data (LCD_GRAPHICS_HOME); /* LSB */
lcd_write_data (LCD_GRAPHICS_HOME >> 8); /* MSB */
lcd_write_command (LCD_ADDRESS_POINTER_SET);
while(1)
{

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);

//find starting digit place


for(i=0; i<15; i++)
{
if((x/place) < 10.0) break;
else place = place*10.0;
}
//print polarity character
if(negative)
rprintfChar('-');
else
rprintfChar('+');

//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;
}
}

You might also like