jueves, 1 de marzo de 2012

Erosketa karro automatizatua ( Julen Otegi eta Unai Alvarez )

Erosketa karro automatizatua

Proiektu honekin supermerkatutako erosteko modua erabat aldatu eta erraztea lortu nahi da. Karroari lotuta doan sistema honen helburua ordainketa sistema azkarragoa sortzea da.Bezero bakoitzak bere identifikazio pertsonala izango du.
Hau llabero bidez egingo da eta bezero bakoitzak berea izango du. Erosketa bakoitzaren hasieran erabiliko du eta erabili ezean ezin izango du erosketak burutu.
Zirkuituak 3 pultsadore izango ditu, erosketa errazteko, + botoia, - botoia eta = botoia. + botoia produktuak gehitzeko erabiliko da. - botoia, aurretik pasa diren produktuak erosketa zerrendatik kentzeko erabiliko da eta = botoia berriz erosketa bukatzean erabiliko da. 







////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                                            //
//                   **PROGRAMAREN FUNTZIONAMENDUA**                                                                                          //
//  Piztu ondoren automatikoki mezu bat ageri da pantailan.                                                                                   //
//  Mezu honek eroslea identifikatzeko llaberoa pasatzeko eskatzen dio.                                                                       //
//  Mezu hau agertuko da llaberoa pasa bitartean eta llaberoa pasa ordez txartela pasatzen bada,                                              //
//  ez duenez inor identifikatuko lcd-an erabiltzailea identifikatzeko llaberoa pasa dezan eskatzen jarraituko du.                            //
//  Txartel irakurketa bakoitzean zunbadore batek soinu txiki bat sortuko du,                                                                 //
//  irakurketa egin dela ziurtatzeko erabiltzaileari. Gainera, irakurgailuko led argia normalean gorri kolorekoa                              //
//  egongo da eta irakurri bitartean berde kolorekoa ipiniko da.                                                                              //
//  Produktuak gehitzeko erosketa karrora, gehi botoia sakatu behar da. Hau egitean, argi gorria pizten da                                    //
//  hau piztu ondoren irakurgailua prest dago edozein txartel irakurtzeko. Argi gorria piztearekin batera, lcdan                              //
//  produktuak pasatzeko eskatzen duen mezu bat agertzen da lehen ileran                                                                      //
//  eta bigarrenean erosketak guztira balio duena.                                                                                            //
//  Txartela irakurgailura pasatzean zunbadoreak soinua ateratzen du, une berean argi gorria itzali eta berdea piztuaz.                       //
//  Txartela irakurtzean software bidez identifikatzen du zein den pasa den produktua                                                         //
//  eta pantailako lehen ileran agertzen da produktua eta bere prezioa.                                                                       //
//  Produktua pantailaratzeaz gain, bigarren ileran agertzen den balioa eguneratzen du irakurritako produktu guztiak batuaz.                  //
//  Erabiltzailea produktuz nahastuko balitz, akats hau zuzentzeko aukera izan dezan kenketa egiteko botoia dago.                             //
//  Kenketa burutzeko ken botoia sakatu behar da eta kendu nahi den produktua identifikatuko duen txartela irakurgailura hurbildu behar da.   //
//  Kendu nahi den produktua aurrez karrora gehitua dagoela zihurtatzen da software bidez.                                                    //
//  Produktua aurrez gehitu bada kendu eta "guztira" balioa eguneratzen du.                                                                   //
//  Produktua ez badago karroan mezu bat pantailaratzen da, karroan ez dagoela adieraziaz                                                     //
//  eta ez du "guztira" balioan aldaketarik sortzen.                                                                                          //
//  Azkenik erosketa egitea amaitutzat jotzean, bukatu botoiari eman behar zaio.                                                              //
//  Hau sakatzean eskerrak emateaz gain, kaxatik pasatzeko eskatzen dio erabiltzaileari.                                                      //
//                                                                                                                                            //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//         **PIC-aren LOTURAK                                                                                                                 //
//    **A PORTUA**                                                                                                                            //
//      A0->GEHI BOTOIA                                                                                                                       // 
//      A1->IRAKURGAILUAREN ENABLEA                                                                                                           //
//      A2->KEN BOTOIA                                                                                                                        //         
//      A3->BUKATU BOTOIA                                                                                                                     //
//      A portuko gainontzeko pinak konketatu gabe daude.                                                                                     //
//    **B PORTUA**                                                                                                                            //
//      B0->Zunbadorea aktibatu eta desaktibatzeko                                                                                            //
//      B3->Bluetooth igorlearen TXDarekin                                                                                                    //
//      B4->Bluetooth igorlearen RXDarekin                                                                                                    //
//      B5->Linea seriaren konexioa                                                                                                           //
//      B portuko gainontzeko pinak konektatu gabe daude.                                                                                     //
//    **C PORTUA**                                                                                                                            //
//      C0->Ez dago konektatua                                                                                                                //
//      C1->LCDaren Enablearekin lotua                                                                                                        //
//      C2->LCDaren RSarekin lotua                                                                                                            //
//      C3->LCDaren RWarekin lotua                                                                                                            //
//      C4->L4arekin lotua                                                                                                                    //
//      C5->L5arekin lotua                                                                                                                    //
//      C6->L6arekin lotua                                                                                                                    //
//      C7->L7arekin lotua                                                                                                                    //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                           SOFTWAREA                                                                                                        //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <16f876.h>
#fuses XT,NOWDT,NOPROTECT
#use delay (clock=4M)
#include "lcdfroga.c"
#use rs232(baud=2400, RCV=PIN_B5,stream=rfid)
#use rs232(baud=9600,XMIT=PIN_B4, RCV=PIN_B3,stream=bt)
#define gehitu input(PIN_A0)
#define kendu input(PIN_A2)
#define bukatu input(PIN_A3)

int8 const tag_cod  [15][12] ={
                     {0x0A,0x33,0x41,0x30,0x30,0x30,0x36,0x45,0x31,0x38,0x31,0x0D}        //L1
                     {0x0A,0x33,0x41,0x30,0x30,0x30,0x37,0x38,0x41,0x35,0x31,0x0D}        //L2
                     {0x0A,0x33,0x41,0x30,0x30,0x30,0x37,0x44,0x32,0x32,0x36,0x0D}        //L3
                     {0x0A,0x33,0x41,0x30,0x30,0x30,0x36,0x42,0x32,0x34,0x46,0x0D}        //L4
                     {0x0A,0x30,0x33,0x30,0x30,0x35,0x35,0x43,0x41,0x33,0x39,0x0D}        //L5
                                          
                     {0x0A,0x31,0x37,0x30,0x30,0x42,0x42,0x37,0x41,0x31,0x39,0x0D}        //t1
                     {0x0A,0x31,0x37,0x30,0x30,0x37,0x44,0x32,0x34,0x41,0x38,0x0D}        //t2
                     {0x0A,0x31,0x37,0x30,0x30,0x42,0x42,0x37,0x43,0x35,0x34,0x0D}        //t3
                     {0x0A,0x34,0x46,0x30,0x30,0x39,0x45,0x33,0x31,0x32,0x44,0x0D}        //t4
                     {0x0A,0x34,0x46,0x30,0x30,0x39,0x45,0x42,0x42,0x44,0x38,0x0D}        //t5
                     {0x0A,0x34,0x46,0x30,0x30,0x39,0x45,0x32,0x34,0x46,0x38,0x0D}        //t6
                     {0x0A,0x34,0x46,0x30,0x30,0x39,0x45,0x39,0x45,0x43,0x42,0x0D}        //t7
                     {0x0A,0x34,0x46,0x30,0x30,0x39,0x45,0x42,0x33,0x30,0x41,0x0D}        //t8
                     {0x0A,0x34,0x46,0x30,0x30,0x39,0x45,0x44,0x45,0x34,0x44,0x0D}        //t9
                     {0x0A,0x34,0x46,0x30,0x30,0x39,0x45,0x36,0x41,0x30,0x41,0x0D}        //t10
                     };  
char a[12];// array honetan gordetzen dira tag-en balioak
float totala=0,prezioa; 
int8 ilera,tag_izena,helbide,konparaketa;
int8 contador; //€ karakterra


//void memoriara_gehitu(void);
int1 hartu_tag(void);
int8 konpara_tag(void); 
float eman_prezioa();
void izendatu_ilerak(int8 izena);
void produktua_gehitu();
/***********************************************************
                     BALIOAK HARTZEKO FUNTZIOA
        funtzio honekin txartelak irakurtzen ditu.
        Itxaroten du 10ms ea txartela dagoen ala ez.
        Ez baldin badago txartelik 0 itzultzen du.
        1 itzultzen du txartela irakurri badu.
***************************************************************/
int1 hartu_tag(void)
{
   int8 i;
   int1 txartel=0;
   output_low(PIN_A1);//Irakurgailuaren Enable pina aktibatu.
   for(i=0;i<12;i++)//0tik 12 bitarteko datuekin ondorengo agindua egiten du
   {
      a[i]=fgetc(rfid);//Txartelaren balioa irakurtzn du.  
   }
   output_high(PIN_B0);//B0 pinera 1 bidaltzen du
   
   delay_ms(250);// bi segundu eta erdi itxaron 
   output_low(PIN_B0);// 0 bidali B0 pinera
   txartel=1;//1 balioa asignatzen dio txartel aldagaiari
   
   output_high(PIN_A1);//Irakurgailuaren Enable pina desaktibatu.
   return(txartel);// txartel aldagaia itzultzen du
}
/******************************************************************************
                           TAG-EN BALIOAK KONPARATZEKO
  funtzio honek aurrez irakurritako tagak arrayeko balioekin identifikatzen ditu.
  Itzultzen du 0xff ez badu irakurri txartelik
*************************************************************************************/
int8 konpara_tag(void)//tag bakoitzaren balioa arrayeko ilera bati atxikitzen dio 
{
   int1 berdin=1;
   int8 ilera,zutabe;
   if(hartu_tag()==1)  //txartela irakurri badut.
   {
      for(ilera=0;ilera<14;ilera++)  //ileraz ilera konparatzen du.
      {
         for(zutabe=0;zutabe<11;zutabe++)  //ilera bakoitza zutabez zutabe konparatzen du.
         {
            if(a[zutabe]==tag_cod[ilera][zutabe])//tag[zutabe];hartzen diren datuak eta tag_cod[ilera][zutabe];gordetako arraya.
            {
               continue;
            }
            else
            {
               berdin=0;//ez dira berdina. Kasilla batek desberdintasuna du
               break;
            }
         }
         if(berdin==1)
            break;
         else   
            berdin=1;
      }//for ileraren amaiera  
      if(ilera<14)
         return (ilera); // Pertsona lortutako balioa
      else
         return(0xff); //Ez du aurkitu txartela edo ez du irakurri
   }
   else
      return(0xff); //Ez du aurkitu txartela edo ez du irakurri

}
/**************************************************************************************************
                              EMAN_PREZIOA FUNTZIOA:
                              tag_izena irakurtzen du  eta  prezio bat ematen dio txartelari
**************************************************************************************************/ 
float eman_prezioa()
{
   lcd_gotoxy(1,1);//1,1 puntura bidaltzen du LCDra
   switch(tag_izena)
   {
      case 5:
         prezioa=1.30;//1.30 gordetzen du prezioan
         printf(lcd_putc,"Lebadura   1,30");//LCDan ondorengo mezua agertzen da
         break;
      case 6:
         prezioa=0.60;//0.60 gordetzen du prezioan
         printf(lcd_putc,"Anbi-pur   0,60");//LCDan ondorengo mezua agertzen da       
         break;
      case 7:
         prezioa=0.80;//0.80 gordetzen du prezioan
         printf(lcd_putc,"Kafea      0,80");//LCDan ondorengo mezua agertzen da
         break; 
      case 8:
         prezioa=0.60;//0.60 gordetzen du prezioan
         printf(lcd_putc,"Zerealak   0,60");//LCDan ondorengo mezua agertzen da
         break;
      case 9:
         prezioa=4.60;//4.60 gordetzen du prezioan
         printf(lcd_putc,"Krema      4,60");//LCDan ondorengo mezua agertzen da
         break;
      case 10:
         prezioa=1.35;//1.35 gordetzen du prezioan
         printf(lcd_putc,"Kamamila   1,35");//LCDan ondorengo mezua agertzen da
         break;
      case 11:
         prezioa=0.25;//0.25 gordetzen du prezioan
         printf(lcd_putc,"Zapiak     0,25");//LCDan ondorengo mezua agertzen da
         break;
      case 12:
         prezioa=0.45;//0.45 gordetzen du prezioan
         printf(lcd_putc,"Poxpoloak  0,45");//LCDan ondorengo mezua agertzen da
         break;
      case 13:
         prezioa=0.39;//0.39 gordetzen du prezioan
         printf(lcd_putc,"Avecrem    0,39");//LCDan ondorengo mezua agertzen da
         break;
      case 14:
         prezioa=0.75;//0.75 gordetzen du prezioan
         printf(lcd_putc,"Antxoak    0,75");//LCDan ondorengo mezua agertzen da
         break;
   }
   lcd_send_byte(0,0x8f);
   lcd_send_byte(1,0); //modo dato
   return(prezioa);
}
/**********************************************************************
                           EROSLEA IDENTIFIKATU
     Identifikatu berri duen ilera bezero batekin lotu behar du.
     ilerari eroslearen datuak emango zaizkio.
***********************************************************************/
void izendatu_ilerak(int8 izena)
{
  printf(lcd_putc,"\fOngi etorri");//LCDan ondorengo mezua agertzen da-
  switch(izena) //Eroslea eta  identifikatzeko konparatu egiten dugu balioa.
   {
      case 0:
         printf(lcd_putc,"\nUnai Alvarez");//LCDan ondorengo mezua agertzen da
      break;
      case 1:
         printf(lcd_putc,"\nJulen Otegi");//LCDan ondorengo mezua agertzen da
      break;
      case 2:
         printf(lcd_putc,"\nBelai Irazabal");//LCDan ondorengo mezua agertzen da
      break;
      case 3:
         printf(lcd_putc,"\nJonatan Ruiz");//LCDan ondorengo mezua agertzen da
      break;
      case 4:
         printf(lcd_putc,"\nLander Del Rio");//LCDan ondorengo mezua agertzen da
      break;
   }
   write_eeprom(0x00,izena);
}
/**********************************************************************
            PRODUKTUA GEHITU     
            automatikoki txartel bakoitza pasatzean
            erosketari gehituko zaio eta lcdan agertuko da.
***********************************************************************/
void produktua_gehitu()
{
   tag_izena=konpara_tag();
   if(tag_izena!=0xff)  //Aurkitu badu txartela
   {
      prezioa=eman_prezioa();
      if((tag_izena!=0)&&(tag_izena!=1)&&(tag_izena!=2)&&(tag_izena!=3)&&(tag_izena!=4))
      {
         totala=totala+prezioa;
      }
      printf(lcd_putc,"\nGUZTIRA    %4.2f",totala);//LCDan ondorengo mezua agertzen da
      lcd_send_byte(0,0x0f);
      lcd_send_byte(1,0); //modo dato
   } 
   //else
     //printf(lcd_putc,"\nTXARRA    %4.2f",totala);//LCDan ondorengo mezua agertzen da
   
}   
/******************************************************************************************************
               MEMORIABORRATU FUNTZIOA
               funtzio honek memoriako posizio guztietan 0xff gordeko du
******************************************************************************************************/
void memoria_borratu()
{
    int8 i;
    for(i=0;i<0xff;i++)//0tik hasi eta ffraino ondorengo agindua aplikatzen die
       write_eeprom(i,0xff);//i posizioan ff datua idazten du
}
/*******************************************************************************************************
            MEMORIA KONPARATU
            Poduktua kendu nahi badugu,funtzio honek konparatzen du ea pasatu dugun txartela lehen pasa dugun.
            Produktua pasata ez bazegoen ez digu kenketa egiten utziko.
**********************************************************************************************************/
void memoria_konparatu()
{
   int8 i,marka=0;
   for(i=helbide;i>0x00;i--)
   {
      if(read_eeprom(i)==tag_izena)
      { 
         write_eeprom(i,0xff);//Produktua gordeta dagoen posizioa ezabatzen du.
         marka=1;
         break;
      } 
   }
   if(marka==1)
      konparaketa=1;
   else   
      konparaketa=0;
}
/*******************************************************************************************************
           KENDU FUNTZIOA
           produktu bat pasatzeko eskatuko zaio erabiltzaileari 
           eta totalari kenduko dio.
********************************************************************************************************/
void kendu_funtzioa(void)
{
      printf(lcd_putc,"\fPasa kendu nahi");//LCDan ondorengo mezua agertzen da
      printf(lcd_putc,"\nduzun produktua");//LCDan ondorengo mezua agertzen da
      
      tag_izena=konpara_tag();
         if(tag_izena!=0xff)  //Aurkitu badu txartela
         {
            memoria_konparatu();// memoria_konparatu funtziora joan 
            if(konparaketa==1)
            {
               prezioa=eman_prezioa();
               totala=totala-prezioa;// totalari prezioa kentzen dio eta totalean gordetzen du
              printf(lcd_putc,"\nGUZTIRA    %4.2f",totala);//LCDan ondorengo mezua agertzen da
            lcd_send_byte(0,0x0f);
            lcd_send_byte(1,0); //modo dato
            }
            else
            {
               printf(lcd_putc,"\fProduktua ez");//LCDan ondorengo mezua agertzen da
               printf(lcd_putc,"\ndago karruan.");//LCDan ondorengo mezua agertzen da
               delay_ms(2000);//2segundu itxaron 
            }
         }
}

/*******************************************************************************************************
           BIDALI DATUAK
           BTtik datuak ordenadorera bidaltzen du erosketa burutu ondoren
********************************************************************************************************/
void bidali_datuak(void)
{

   int8 i,izena,zerrenda;
   int8 a;
   izena=read_eeprom(0x00);
   switch(izena) //Eroslea eta  identifikatzeko konparatu egiten dugu balioa.
   {
      case 0:
         fprintf(bt,"\n\rUnai Alvarez\n");//BT bidez ondorengo mezua agertzen da
      break;
      case 1:
         fprintf(bt,"\n\rJulen Otegi\n");//BT bidez ondorengo mezua agertzen da
      break;
      case 2:
         fprintf(bt,"\n\rBelai Irazabal\n");//BT bidez ondorengo mezua agertzen da
      break;
      case 3:
         fprintf(bt,"\n\rJonatan Ruiz\n");//BT bidez ondorengo mezua agertzen da
      break;
      case 4:
         fprintf(bt,"\n\rLander Del Rio\n");//BT bidez ondorengo mezua agertzen da
      break;
   }  
   for(i=1;i<helbide;i++)//i aldagaia inkrementatzen du helbide aldagaiaren baliora iritsi arte
   {
      zerrenda=read_eeprom(i);// i posizioa irakurtzen du eepromean eta zerrenda aldagaian gorde
      switch(zerrenda)
      {
         case 5:
            fprintf(bt,"\n\rLebadura   1,30 Euro");//BT bidez ondorengo mezua agertzen da
            break;
         case 6:
            fprintf(bt,"\n\rAnbi-pur   0,60 Euro"); //BT bidez ondorengo mezua agertzen da      
            break;
         case 7:
            fprintf(bt,"\n\rKafea      0,80 Euro");//BT bidez ondorengo mezua agertzen da
            break; 
         case 8:
            fprintf(bt,"\n\rZerealak   0,60 Euro");//BT bidez ondorengo mezua agertzen da
            break;
         case 9:
            fprintf(bt,"\n\rKrema      4,60 Euro");//BT bidez ondorengo mezua agertzen da
            break;
         case 10:
            fprintf(bt,"\n\rKamamila   1,35 Euro");//BT bidez ondorengo mezua agertzen da
            break;
         case 11:
            fprintf(bt,"\n\rZapiak     0,25 Euro");//BT bidez ondorengo mezua agertzen da
            break;
         case 12:
            fprintf(bt,"\n\rPoxpoloak  0,45 Euro");//BT bidez ondorengo mezua agertzen da
            break;
         case 13:
            fprintf(bt,"\n\rAvecrem    0,39 Euro");//BT bidez ondorengo mezua agertzen da
            break;
         case 14:
            fprintf(bt,"\n\rAntxoak    0,75 Euro");//BT bidez ondorengo mezua agertzen da
            break;
      } 
   }
   fprintf(bt,"\n\rGUZTIRA    %4.2f Euro",totala);//BT bidez ondorengo mezua agertzen da
   for(a=0;a<0xff;a++)//0 posiziotik ff posiziora inkrementatuaz doa
      write_eeprom(a,0xff);// a posizioan ff idazten du
}
/***************************************************************************************
                                   MAIN FUNTZIOA:
              Funtzio hau programako funtzio nagusia da eta hemendik besteetara joaten
              da eragiketak eta identifikazioak egiteko.   
****************************************************************************************/
void main (void)
{
   int const caracter0_direccion[8]={0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47};
   int const caracter0_datos[8]={0b00111,0b01000,0b11100,0b01000,0b11100,0b01000,0b00111,0b0};

   enable_interrupts(INT_EXT);
   EXT_INT_EDGE(H_TO_L);
   enable_interrupts(GLOBAL);

   set_tris_a(0x00); // Sarrera eta irteerak konfiguratu.
   output_high(PIN_A1);//Irakurgailuaren Enable pina desaktibatu.
   lcd_init(); //LCD martxan jarri.
   lcd_send_byte(0,0b00001100);
   for(contador=0;contador<8;contador++)// contador 0tik 8ra inkrementatzen du
   {
      lcd_send_byte(0,caracter0_direccion[contador]);   //modo comando
      lcd_send_byte(1,caracter0_datos[contador]);        // modo dato
   }
   lcd_gotoxy(1,1);//LCDaren 1,1 posiziora doa
   tag_izena=0xff;// tag_izenean ff idazten du
   memoria_borratu();//memoria borratu funtziora salto egiten du
   while(1)
   {
      do{
         printf(lcd_putc,"\fUnai Alvarez\nJulen Otegi");//LCDan ondorengo mezua agertzen da
         delay_ms(1500);// segundu eta erdi itxaron 
         printf(lcd_putc,"\fDonBosco\n2011-2012");//LCDan ondorengo mezua agertzen da
         delay_ms(1500);// segundu eta erdi itxaron 
         printf(lcd_putc,"\fPasa llaberoa\nMesedez.");//LCDan ondorengo mezua agertzen da
         tag_izena = konpara_tag();
         totala=0; //Erreseteatzeko, pasatutako produktuen batura eliminatu behar da.
      } while((tag_izena!=0)&&(tag_izena!=1)&&(tag_izena!=2)&&(tag_izena!=3)&&(tag_izena!=4)); //Produktua llaberoa baino lehenago pasatzean hemen geratzen da.
      
      izendatu_ilerak(tag_izena);//izendatu_ilera funtzioari tag_izena pasatzen dio
      delay_ms(1500);// segundu eta erdi itxaron 
      printf(lcd_putc,"\f  Has zaitezke");//LCDan ondorengo mezua agertzen da
      printf(lcd_putc,"\n  erosketarekin");//LCDan ondorengo mezua agertzen da
      
      helbide=1;// helbide berdin 1 egiten du
      while(1)
      {
        if(bukatu==0)
         {
            printf(lcd_putc,"\fEskerrik asko");//LCDan ondorengo mezua agertzen da
            printf(lcd_putc,"\nGUZTIRA    %4.2f",totala);//LCDan ondorengo mezua agertzen da
            lcd_send_byte(0,0x0f);
            lcd_send_byte(1,0); //modo dato
            while(bukatu==0);   //Itxaron askatu arte
            delay_ms(3000);// 3 seg itxaron 
            printf(lcd_putc,"\fPasa kaxatik");//LCDan ondorengo mezua agertzen da
            printf(lcd_putc,"\nGUZTIRA    %4.2f",totala);//LCDan ondorengo mezua agertzen da
            lcd_send_byte(0,0x0f);
            lcd_send_byte(1,0); //modo dato
            delay_ms(2000);//2 seg itxaron
            bidali_datuak();//bidali datuak programara salto egin
            delay_ms(5000);//5 seg itxaton
            do{
               printf(lcd_putc,"\fPasa llaberoa");//LCDan ondorengo mezua agertzen da
               tag_izena = konpara_tag();//konpara_tag-etik lortzen dena tag_izenean gordetzen da
               totala=0; //Erreseteatzeko, pasatutako produktuen batura eliminatu behar da.
               } while((tag_izena!=0)&&(tag_izena!=1)&&(tag_izena!=2)&&(tag_izena!=3)&&(tag_izena!=4)); //Produktua llaberoa baino lehenago pasatzean hemen geratzen da.
               izendatu_ilerak(tag_izena);//izendatu_ilerak funtziora tag_izena bidaltzen du
               delay_ms(1500);//segundu eta erdi itxaron
               printf(lcd_putc,"\f  Has zaitezke");//LCDan ondorengo mezua agertzen da
               printf(lcd_putc,"\n  erosketarekin");//LCDan ondorengo mezua agertzen da
         }   
         else if(kendu==0)
         {
            kendu_funtzioa();//kendu funtzioari deitzen dio
            while(kendu==0);//Itxaron askatu arte
            delay_ms(20);//Erreboteak ekiditzeko
         }
         else if(gehitu==0)
         {
            lcd_gotoxy(1,1);// LCDko puntu horretara bidaltzen du
            printf(lcd_putc,"Pasa produktuak ");//Produktuak pasatzeko eskatu du
            printf(lcd_putc,"\nGUZTIRA    %4.2f",totala);//Bigarren ileran 
            lcd_send_byte(0,0x0f);
            lcd_send_byte(1,0); //modo dato
            produktua_gehitu();//produktua gehitu funtziora salto egiten du
            while(gehitu==0);   //Itxaron askatu arte
            delay_ms(20);           //Erreboteak ekiditzeko
            write_eeprom(helbide,tag_izena);//tag_izena idazten du helbidean
            helbide++;//helbidea inkrementatzeko
         }   
      } 
   }   
}





No hay comentarios:

Publicar un comentario