mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pic18F4550 und EEprom 24256


Autor: Gertschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute will ein EEprom mit der 24256.c LIB verwenden nur mein problem 
ist das der C18 Compiler von Microchip den Befehl "Byte" nicht kennt.

Ich komm nicht drauf in welcher Standartlib. das declariert ist:

Nur zu info:

//////////////////////////////////////////////////////////////////////// 
///
////   Library for a 24LC256 serial EEPROM 
////
//// 
////
////   init_ext_eeprom();    Call before the other functions are used 
////
//// 
////
////   write_ext_eeprom(a, d);  Write the byte d to the address a 
////
//// 
////
////   d = read_ext_eeprom(a);   Read the byte d from the address a 
////
//// 
////
////   The main program may define eeprom_sda 
////
////   and eeprom_scl to override the defaults below. 
////
//// 
////
//////////////////////////////////////////////////////////////////////// 
///
////        (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. 
////
//////////////////////////////////////////////////////////////////////// 
///


#ifndef EEPROM_SDA

#define EEPROM_SDA  PIN_B1
#define EEPROM_SCL  PIN_B0

#endif

#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)

#define EEPROM_ADDRESS long int
#define EEPROM_SIZE   32768

void init_ext_eeprom()
{
   output_float(EEPROM_SCL);
   output_float(EEPROM_SDA);

}


void write_ext_eeprom(long int address, BYTE data) <------- Hier
{
   short int status;
   i2c_start();
   i2c_write(0xa0);
   i2c_write(address>>8);
   i2c_write(address);
   i2c_write(data);
   i2c_stop();
   i2c_start();
   status=i2c_write(0xa0);
   while(status==1)
   {
   i2c_start();
   status=i2c_write(0xa0);
   }
   i2c_stop();
}


BYTE read_ext_eeprom(long int address) {
   BYTE data;
   i2c_start();
   i2c_write(0xa0);
   i2c_write(address>>8);
   i2c_write(address);
   i2c_start();
   i2c_write(0xa1);
   data=i2c_read(0);
   i2c_stop();
   return(data);
}

Kann mir wer da helfen?
lg Gert

Autor: Zwirbeljupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.) BYTE ist kein "Befehl", sondern ein Datentyp!

2.) Du kannst ihn so definieren:
typedef unsigned char BYTE; // 8-bit unsigned

3.) Der Code ist für den CCS C Compiler und wird mit dem C18 nicht 
kompilierbar sein.

4.) Du hast gerade eine Copyright-Verletzung begangen:
> 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.

Autor: Gertschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab den falschen Compiler eingestellt bei Mblab..

Funktioniert alles einwandfrei..

lg
Gert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.