#include <main.h>
#define LCD_ENABLE_PIN PIN_C0
#define LCD_RS_PIN PIN_C2
#define LCD_RW_PIN PIN_C1
#define LCD_DATA4 PIN_C4
#define LCD_DATA5 PIN_C5
#define LCD_DATA6 PIN_C6
#define LCD_DATA7 PIN_C7

/************Global**********/

unsigned int switches;
unsigned int ops, old_ops;
unsigned int adc0;
unsigned int adc1;
unsigned int adc2;
/************Global*********/

#include <lcd.c>
unsigned int value;
unsigned int read_pot(unsigned int);
unsigned int read_buts(void);
void Task1(void);
void Task2(void);
void Task2B(void);
void Task2C(void);
void Task2D(void);
void Task3(void);


void main()
{
	setup_adc_ports(sAN0 | sAN1 | sAN2, VSS_VDD);
	setup_adc(ADC_CLOCK_INTERNAL | ADC_TAD_MUL_0);

   lcd_init();
 
	while(TRUE)
	{
	Task2c();						       
	    ops = read_buts();
	   if(ops=old_ops);
	   switch(ops)
	   {
	      case 1:	Task1();
			break;
	      
	      case 2:	Task2();
			break;
	      
	      case 4:	Task2B();
			break;
	
	        
	      case 8:	Task2C();
			break;
	      
	     case 3:	Task2D();
			break;
	      
	      case 12: Task3();
			break;
	      
	      default:	break;
	   }
	   
	   old_ops=ops;

	}
     }
     
     
 void Task3(void)
     {
	lcd_gotoxy(1,1);
	printf(lcd_putc,"Pot A = %u",adc0);
	delay_ms(20);

	
        lcd_gotoxy(1,2);
	printf(lcd_putc,"Pot B = %u",adc1);
	delay_ms(20);

	
	lcd_gotoxy(21,1);
	printf(lcd_putc,"Pot C = %u",adc2);
	delay_ms(20);

     }
     
    
 void Task2D(void)
     {
      if (output_high(PIN_A4))
      
      output_low(PIN_A7);
      output_Low(PIN_A6);
   }
   
 void Task2C(void)
     {
      if (output_high(PIN_A4))
      
      output_low(PIN_A7);
      output_High(PIN_A6);
   }
     
      
void Task2B(void)
     {
      if (output_high(PIN_A4))
      
      output_low(PIN_A7);
      output_low(PIN_A6);
   
   }
void Task2(void)
     {
   if (output_high(PIN_A4))
      
      output_high(PIN_A7);
      output_low(PIN_A6);
}
  

void Task1(void)
 {
   adc0=read_pot(0);
   adc1=read_pot(1);
   adc2=read_pot(2);								       // takeing pot value 
   lcd_gotoxy(1,1);  								       //line that it dispalys on 
   printf(lcd_putc,"Pot A = %3u",adc0);
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Pot B = %3u",adc1);
   lcd_gotoxy(21,1);
   printf(lcd_putc,"Pot C = %3u",adc2);	
   
}

unsigned int read_pot(channel)							
	{
	set_adc_channel(channel);
	delay_us(20);
	value=read_adc();
	return(value);
	}
unsigned int read_buts(void)
{
   unsigned int buttons;
   buttons = PIN_A4,PIN_A5;
   if(input(PIN_A4),(PIN_A5));
   return(buttons);
}
   

	
