Hallo,
ich hätte eine Frage bezüglich 24LC01B. Hab mir den EEPROM Baustein vor
einer Woche zugelegt und wollte ihn gleich zu meinem Mikrocontroller
hinzuschalten, um eine Temperaturauswertung zu machen.
Hab den Baustein nach Datenblatt beschaltet, darin steht auch, dass die
Anschlüsse A0, A1, A2 potentialfrei sein können, oder gegen Vss od. Vcc
geschaltet werden können. Ich habe sie gegen Masse (Vss) geschaltet. SCL
und SDA hab ich mit einem 4,7k Widerstand anstatt einen 10k Widerstand
auf Vcc geschaltet.
Der Sourcecode sieht folgendermaßen aus:
#include <18F452.h>
#fuses HS, NOWDT, NOBROWNOUT, NOLVP
#use delay(clock=20000000)
#use I2C(master, sda=PIN_C4, scl=PIN_C3)
#use RS232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
int data;
void main(){
while(1){
i2c_start();
i2c_write(0x90); // Device address
i2c_start(); // Restart
i2c_write(0x91); // to change data direction
data=i2c_read(0); // Now read from slave
i2c_stop();
printf("\r\nTemp: %3u",data);
delay_ms(200);
}
}
Nun wollte ich fragen, ob meine Beschaltung (4,7k anstatt 10k
Widerstand) oder mein Sourcecode fehlerhaft ist.
mfg Simon
> Und geht es jetzt?
Unwahrscheinlich da i2c_start was anderes sein duerfte als i2c_restart
und ich sehe auch garnicht das er die Adresse uebertraegt von der er
lesen will.
Olaf
Magnetus schrieb:
> Und geht es jetzt?
Kann es erst morgen austest, da ich meine Platine am Arbeitsplatz
vergessen habe. Hoffe es geht!
Werde dir morgen eine Antwort schreiben ob es funktioniert!
mfg Simon
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
