Code:
	  unsigned char ch;
  void anzeigee(unsigned int);
  unsigned int eprom_lesen(unsigned int);
  unsigned short eprom_schreiben(unsigned short,unsigned int);
//void Eeprom_Write(unsigned int address, unsigned short data);
//unsigned short Eeprom_Read(unsigned int address);
void anzeigee(unsigned int x)
{
  unsigned short anzeige[10] ;      //9 //6
     IntToStr(x/10,anzeige);
     Lcd_Out(2,5,anzeige);
     LCD_Chr_CP(46);
     
     ch = x % 10;
     LCD_Chr(2,12,48+ch);
     
}
unsigned int eprom_lesen(unsigned int aa )
  {
//    unsigned int aaa;
    unsigned int temp3,temp2;
//    aaa=0;
    temp2 = (short)Eeprom_Read( aa+1 );
    temp3 =(short)Eeprom_Read( aa );
    temp3 = (temp3 << 8);
    temp3 +=temp2;
//    delay_ms(30);
    
   return temp3;
  }
unsigned short eprom_schreiben(unsigned short xxx,unsigned int xxxx )
  {
    unsigned int temp;
    temp = xxxx;
     Eeprom_Write ( xxx+1,temp );
     temp = (xxxx>>8);
     Eeprom_Write ( xxx,((short)temp) );
  }
  
  
void main()
{
char *text1 = "Dossierhub";
char *text2 = "cfx";
char *text3 = "cup";
char *text4 = "cf1";
unsigned int  txt_1_int, txt_2_int,adwert_int2 , adwert_int3,j;
unsigned short wert1, wert2, enter, Schalt1_soll, Schalt2_soll;
unsigned short txt_i[1], txt_j[2], istwert1[8], istwert2[8],adwert[2],ch1;   //1-->8
unsigned int txt_1, txt_2,tint,adresse, tshort;
unsigned long tlong;
unsigned short ttshort;
  TRISC       =    0;
  PORTC       =    0;
  TRISB       =    0;
  PORTB       =    0;
  enter       =    0;
  wert2       =    0;
  Lcd_Config(&PORTC, 3, 1, 2, 7, 6, 5, 4);
  LCD_Cmd(LCD_CLEAR);
  LCD_Cmd(LCD_CURSOR_OFF );
  LCD_Out(1,4,text1);
  LCD_Out(2,2,text2);
  do
    {
     ADCON1 = 0x00;                                  //alle analog
     TRISA  = 0xff;
     tlong = ((long)ADC_Read(3)*1600)/1023;          //cfx-wert  0-160.0mm
//   tint = ((ADC_Read(3)*16)/1023)*100;
     tint = tlong;
//     tshort = tlong/10;
//     tshort = tint/10;
     anzeigee(tint);
     
     ADCON1 = 0x06;                                  //alle digital
    
//        wert1 = eprom_lesen( adresse );
 /*    if ( tshort > eprom_lesen( adresse= 0x00))          //Umschalp. cup  Öffner
        {
           PORTB = PORTB | 0x80;
        }
     else
        {
           PORTB = PORTB & 0x7F;
        }
     if ( tshort < eprom_lesen( adresse= 0x01) )     //Schließer, Dossierhub cf1  unter 50 ein
        {
           PORTB |= 0x40;
        }
      else
        {
           PORTB &= 0xBF;
        }
  */
     if (Button(&PORTA, 2, 20, 1) &&  enter == 0 )  //Umschaltpunkt cup Öffner Soll
        {
          while((PORTA & 0x04)==0x04);              //nach dem loslassen weiter
          LCD_Cmd(LCD_CLEAR);
          LCD_Out(1,1,"Umschaltpunkt");
          LCD_Out(2,1,text3);
           
          txt_1 = eprom_lesen( adresse =0x00 );             
          IntToStr(txt_1/10,istwert1);
          Lcd_Out(2, 5,istwert1);
          
          LCD_Chr_CP(46);
          ch1 = txt_1 % 10;
          LCD_Chr(2,12,48+ch1);
          
          enter=1;
          //delay_ms(5000);
        }
       while(enter == 1 || enter == 2)
            {
              wert1 =  (PORTA & 0x03);           //aktuelle stellung nach wert1
    
            if ((wert1 ^ wert2)  > 0)          //wurde der Rotary bewegt oder wert1 = wert2
               {
                 wert2 = (wert2 << 1 );         //verschieben des zweiten aufgenommenden wertes
                 if ((wert1 ^ wert2)  == 0x01)
                    {tint += 2;}
        
                 if ((wert1 ^ wert2)  == 0x02)
                    {tint -= 2;}
        
                 if (tint >  1600)
                    {tint = 2 ;}
         
                 if (tint < 1)
                    {tint = 1600 ;}
                    
                  wert2  = wert1 ;
                 // delay_ms(20);
                  anzeigee(tint);
             /*
                 ch1     = i / 1000;
                 LCD_Chr(2,12,48+ch1);
                 ch1    = (i / 100) % 10;
                 LCD_Chr_CP(48+ch1);
                 ch1    = (i / 10) % 10;
                 LCD_Chr_CP(48+ch1);
                 LCD_Chr_CP('.');
                 ch1    = i % 10;
                 LCD_Chr_CP(48+ch1);
             */
               }
              if (Button(&PORTA, 2, 20, 1) && enter == 1)   //Dossierhub cf1 Schließer
                 {
                   while((PORTA & 0x04)==0x04);              //nach dem loslassen weiter
//                   Schalt1_soll = tint;
                   eprom_schreiben(adresse = 0x00,tint );
 //                  Eeprom_Write((0x00), Schalt1_soll);
                   LCD_Cmd(LCD_CLEAR);
                   LCD_Out(1,1,text1);
                   LCD_Out(2,1,text4);
                   txt_2 = eprom_lesen( adresse = 0x02);
                   IntToStr(txt_2/10,istwert2);
                   Lcd_Out(2, 5,istwert2);
                   LCD_Chr_CP(46);
                   ch1 = txt_2 % 10;
                   LCD_Chr(2,12,48+ch1);
        //           IntToStr(txt_2,istwert2);
         //          Lcd_Out(2,5,istwert2);
                   
               /*
                   ch1     = txt_2 / 100;
                   LCD_Chr(2,5,48+ch1);
                   ch1    = (txt_2 / 10) % 10;
                   LCD_Chr_CP(48+ch1);
                   ch1    = txt_2 % 10;
                   LCD_Chr_CP(48+ch1);
                */
                   enter=2;
                   delay_ms(250);
                 }
        
              if (Button(&PORTA, 2, 20, 1) && enter == 2) //enter und speichern
                 {                                        //von Schalt2 Soll
                   while((PORTA & 0x04)==0x04);           //nach dem loslassen weiter
                   
//                   Schalt2_soll = tint;
                   eprom_schreiben(adresse = 0x02,tint );
//                   Eeprom_Write((0x01), Schalt2_soll);
           
                   LCD_Cmd(LCD_CLEAR);
                   enter=0;
                   delay_ms(1000);
                   
                   LCD_Cmd(LCD_CLEAR);
                   LCD_Out(1,5,text1);        //Dossierhub
                   LCD_Out(2,2,text2);
                 }
                 
            }
    }
    while(1);
}
 
						
Lesezeichen