#include <16F877.h>
//#INCLUDE "LCD_SAM3.C"
#device adc=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected
#FUSES NODEBUG                  //No Debug mode for ICD

#use delay(clock=10000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#INCLUDE "LCD_SAM3.C"
byte const num[12] = {'0','1','2','3','4','5','6','7','8','9','*','o'};
INT8 A,B,C,D;
void bcd(int16 value);
INT16 adc0;
char current[9];
 int8  adc;
 int8 n;
void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc_ports(AN0_AN1_AN4_VREF_VREF);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);

   // TODO: USER CODE!!
   adc =5;
   lcd_init();
   
   //sprintf(voltage, "%6f", (float)adc * .019);//convert adc to text
  // lcd_gotoxy(1,0);
   //for(n=0;n<=4;n++){lcd_putc(voltage[n]);}
   

   
   lcd_gotoxy(1,3);
   lcd_putc("SIM CURRENT");
   
    
     
   WHILE(TRUE)
   {
   
   OUTPUT_TOGGLE(PIN_C0);
  // DELAY_MS(10);
   
   set_adc_channel(0);

   delay_us(10);

   adc0 = read_adc();
   
   adc0 *= 50;
      lcd_gotoxy(2,0);
     lcd_putc("CURRENT");
   
   
   sprintf(current, "%6f", (float)adc0/1023);
   
   lcd_gotoxy(2,8);
   
    for(n=0;n<=4;n++){lcd_putc(current[n]);}

     
      

   }

}
void bcd(int16 value)
{
  a=b=c=d=0;
  a=value/1000;
  value%=1000;
  b=value/100;
  value%=100;
  c=value/10;
  d=value%10;
  
}
