Eeprom kayıt etmiyor [Çözüldü]

Başlatan baran123, 26 Şubat 2014, 18:38:34

baran123

merhaba arkadaşlar ben 3 adresine bilgi yazabileceğim bir kod yazdım fakat enerjiyi kesince kaydolmuyor sıfır oluyor kod aşşağıda yardımcı olursanız sevinirim.

Edit : sigorta ayarları değişti ama sorun devam ediyor

Edit2: Çözdüm arkadaslar genede sağ olun :DD
her girişten sonra eepromda ki veriyi okumam yeterliymiş düzenli halini ekledim

#include <16F877A.h>
#device adc=16
#fuses NOWDT,XT,NOBROWNOUT,NOLVP,PUT,CPD,NOWRT,PROTECT,NODEBUG
#use delay(clock=4000000)
#include "lcd.c"

int i,j,l;
int no = -1;
 
void main()
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
   
   lcd_init();
   lcd_gotoxy(1,1);
  
   set_tris_b(0b11111000);
   output_d(0b00000001);
   output_high(pin_d0);
   
   basla:  
   lcd_gotoxy(1,1);
   printf(lcd_putc,"\fAdres No Giriniz");
   lcd_gotoxy(1,2);
   printf(lcd_putc,"No = ");
   
   while(TRUE)
   { 
      if(input(pin_b3)==1)
      {
         delay_ms(100);
         no++;
         lcd_gotoxy(1,2);
         printf(lcd_putc,"");
         printf(lcd_putc,"No = %d",no);
      }
      
      if(no == 0 && input(pin_b4)==1)
      {
         while(TRUE)
         {
            delay_ms(100);
            printf(lcd_putc,"\f0.Adres = %d",i);
            i = read_eeprom(0);
            
            if(input(pin_b5)==1)
            {
               delay_ms(100);
               i++;
               write_eeprom(0, i);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               i = read_eeprom(0);
               printf(lcd_putc,"\f0.Adres = %d",i);
            }
            
            if(input(pin_b6)==1)
            {
               delay_ms(100);
               i--;
               write_eeprom(0, i);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               i = read_eeprom(0);
               printf(lcd_putc,"\f0.Adres = %d",i);
            }
            
            if(input(pin_b7)==1)
            {
               delay_ms(100);
               write_eeprom(0, 0);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               i = read_eeprom(0);
               printf(lcd_putc,"\f0.Adres = %d",i);
            }
            
            if(input(pin_b4)==1)
            {
               no = -1;
               goto basla;
            }
         }
      }
      
      if(no == 1 && input(pin_b4)==1)
      {
         while(TRUE)
         {
            delay_ms(100);
            printf(lcd_putc,"\f1.Adres = %d",j);
            j = read_eeprom(1);
            
            if(input(pin_b5)==1)
            {
               delay_ms(100);
               j++;
               write_eeprom(1, j);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               j = read_eeprom(1);
               printf(lcd_putc,"\f1.Adres = %d",j);
            }
            
            if(input(pin_b6)==1)
            {
               delay_ms(100);
               j--;
               write_eeprom(1, j);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               j = read_eeprom(1);
               printf(lcd_putc,"\f1.Adres = %d",j);
            }
            
            if(input(pin_b7)==1)
            {
               delay_ms(100);
               write_eeprom(1, 0);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               j = read_eeprom(1);
               printf(lcd_putc,"\f1.Adres = %d",j);
            }
            
            if(input(pin_b4)==1)
            {
               no = -1;
               goto basla;
            }
         }
      }
      
      if(no == 2 && input(pin_b4)==1)
      {
         while(TRUE)
         {
            delay_ms(100);
            printf(lcd_putc,"\f2.Adres = %d",l);
            l = read_eeprom(2);
            
            if(input(pin_b5)==1)
            {
               delay_ms(100);
               l++;
               write_eeprom(2, l);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               l = read_eeprom(2);
               printf(lcd_putc,"\f2.Adres = %d",l);
            }
            
            if(input(pin_b6)==1)
            {
               delay_ms(100);
               l--;
               write_eeprom(2, l);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               l = read_eeprom(2);
               printf(lcd_putc,"\f2.Adres = %d",l);
            }
            
            if(input(pin_b7)==1)
            {
               delay_ms(100);
               write_eeprom(2, 0);
               
               delay_ms(50);
               lcd_gotoxy(1,1);
               l = read_eeprom(2);
               printf(lcd_putc,"\f2.Adres = %d",l);
            }
            
            if(input(pin_b4)==1)
            {
               no = -1;
               goto basla;
            }
         }
      }
   }
}