I2C iletişim sorun kod sorunu var lütfen yardım

Başlatan mustafa_09, 09 Aralık 2012, 23:56:28

mustafa_09

[IMG]http://img855.imageshack.us/img855/741/adszxrf.png[/img]

Uploaded with ImageShack.us

digit = getc(); satırında hata veriyor yardım edebilirmisiniz lütfen çözemedim

yazmaya çalıştığım programda 12f675 denetleyicisinin a2 pini high olduğunda saymaya başlayacak ve 2dk sonra i2c protokolünden eeprom daki 0xa0 verisini okuyacak 0xa0 verisini bir arttırıp tekrar eeproma yazacak


#include <12F675.h>
#include <input.c>
#include <2402.c>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC_IO                      //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOMCLR                     //Master Clear pin enabled
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOCPD                    //No EE protection

#use delay(clock=4000000)
#use fast_io(a)
#use i2c(master,sda=pin_a0,scl=pin_a1,slow=100000)

int sayi=0;
int i=0;
byte veri, adres;

#int_timer0
void timer0_kesme()
{
   if(input(pin_a2) == 1)
   {
      set_timer0(60);
      i++;
   
          if(i=120)
            {
               read_ext_eeprom(0xa0)
               return veri;
               veri++
               write_ext_eeprom(0xa0,veri);
               i=0;
               
            
            
            }

   }
}

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   set_tris_a(0b00100);
   
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
   
   set_timer0(60);
   enable_interrupts(İNT_timer0);
   enable_interrupts(GLOBAL);
   
   while(1);
}


input.c de sorun var

///////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services           ////
//// This source code may only be used by licensed users of the CCS C  ////
//// compiler.  This source code may only be distributed to other      ////
//// licensed users of the CCS C compiler.  No other use, reproduction ////
//// or distribution is permitted without written permission.          ////
//// Derivative programs created using this software in object code    ////
//// form are not restricted in any way.                               ////
///////////////////////////////////////////////////////////////////////////


#include <ctype.h>

BYTE gethex1() {
   char digit;

   digit = getc();     // sorun bu satırda 

   putc(digit);

   if(digit<='9')
     return(digit-'0');
   else
     return((toupper(digit)-'A')+10);
}

BYTE gethex() {
   unsigned int8 lo,hi;

   hi = gethex1();
   lo = gethex1();
   if(lo==0xdd)
     return(hi);
   else
     return( hi*16+lo );
}

void get_string(char* s, unsigned int8 max) {
   unsigned int8 len;
   char c;

   --max;
   len=0;
   do {
     c=getc();
     if(c==8) {  // Backspace
        if(len>0) {
          len--;
          putc(c);
          putc(' ');
          putc(c);
        }
     } else if ((c>=' ')&&(c<='~'))
       if(len<=max) {
         s[len++]=c;
         putc(c);
       }
   } while(c!=13);
   s[len]=0;
}

// stdlib.h is required for the ato_ conversions
// in the following functions
#ifdef _STDLIB
#if !defined(__PCD__)
signed int8 get_int() {
  char s[5];
  signed int8 i;

  get_string(s, 5);

  i=atoi(s);
  return(i);
}
#endif

#if defined(__PCD__)
signed int16 get_int() {
  char s[5];
  signed int16 i;

  get_string(s, 7);

  i=atoi(s);
  return(i);
}
#endif

#if !defined(__PCD__)
signed int16 get_long() {
  char s[7];
  signed int16 l;

  get_string(s, 7);
  l=atol(s);
  return(l);
}
#endif

#if defined(__PCD__)
signed int32 get_long() {
  char s[7];
  signed int32 l;

  get_string(s, 10);
  l=atoi32(s);
  return(l);
}
#endif

float get_float() {
  char s[20];
  float f;

  get_string(s, 20);
  f = atof(s);
  return(f);
}

#endif

ziyaretci

HATA TÜKÇE KARAKTER: enable_interrupts(İNT_timer0);  // enable_interrupts(INT_timer0); olacak

Bunu değiştir tekrar dene , geri bildirimi unutma, kolay gelsin.

mustafa_09

Türkçe karakteri değistirdim aynı yerde hata veriyor yine

ziyaretci

Alıntı yapılan: mustafa_09 - 10 Aralık 2012, 12:02:33
Türkçe karakteri değistirdim aynı yerde hata veriyor yine

Programını derlerken üst sekmede programından başka sekme yok demi(input.c ) gibi ,

mustafa_09


ziyaretci

 Sürümden kaynaklanma ihtimali olabilir , bakalım diğer arkadaşlar ne diyecek bu hata hakkında ,

engineer42

sol üst köşeden close all seçtikten sonra projeyi açıp derlersen bu sorun hallolur