- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 70

Thema: Raspberry Pi I2C

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von Kampi Beitrag anzeigen
    Also das Programm funktioniert. Er ließt die Zellen aus.
    Jetzt muss ich das nur mal mit einem Write kombinieren um zu sehen ob das auch klappt
    Danke dafür!

    Edit: Beim zweiten mal ausführen spuckt er aber nur 0xff aus. Wieso?
    $ sudo ./i2c-test
    00 ff ff ff ff ff ff 00 04 72 be 00 e7 7d 11 01 0b 14 01 03

    Das geht bei mir beliebig oft.

    Write bei einem EEPROM sollte so gehen:

    buffer[0] = Adresspointer im EEPROM
    buffer[1] = Datenbyte
    ..
    buffer[x] = Datenbyte

    write(fd, buffer, x+1)

    Wieviel man auf einmal schreiben kann, hängt vom EEPROM ab. Wenn man nicht auf eine Ready wartet, sollte man vor dem nächsten read oder write etwas Pause machen.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Zitat Zitat von Klebwax Beitrag anzeigen
    $ sudo ./i2c-test
    00 ff ff ff ff ff ff 00 04 72 be 00 e7 7d 11 01 0b 14 01 03

    Das geht bei mir beliebig oft.

    Write bei einem EEPROM sollte so gehen:

    buffer[0] = Adresspointer im EEPROM
    buffer[1] = Datenbyte
    ..
    buffer[x] = Datenbyte

    write(fd, buffer, x+1)

    Wieviel man auf einmal schreiben kann, hängt vom EEPROM ab. Wenn man nicht auf eine Ready wartet, sollte man vor dem nächsten read oder write etwas Pause machen.

    MfG Klebwax
    mmh ich weiß natürlich nicht ob das EEPROM in Ordnung ist. Vielleicht hat das Ding ja schon nen Schuss......
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Also ich habs nochmal probiert und es kommt immer nur 0xff raus. Selbst nach einem Reboot ändert sich nichts.
    Ich vermute stark, dass das EEPROM einen Schuss hat da du ja sagst das es bei dir funktioniert.
    Ich probier das nachher auch mal mit meinem PSoC der soll sich laut Datenblatt ja wie ein EEPROM verhalten....mal schauen ob das stimmt.....
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Also das I²C Problem hat sich wohl gelöst.
    Ich Depp habe vergessen, dass das EEPROM eine 16-Bit Adresse hatte und beim PSoC habe ich ein Byte zuviel gesendet, da ich dachte man müsse einen Pointer setzen ab wann man das EEPROM auslesen will.
    Wenn ich aber nur

    i2cget -y 0 0x40

    sende, statt wie vorher

    i2cget -y 0 0x40 0x00

    klappt es 1a.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Zitat Zitat von Kampi Beitrag anzeigen
    Also das I²C Problem hat sich wohl gelöst.
    Ich Depp habe vergessen, ....
    klappt es 1a.
    Wieder die Sache mit dem zwischen Monitor und Bürostuhl. Aber schön das es nun funktioniert und nichts Schlimmeres der Grund war.
    Grüße,
    Daniel

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Ja aber erstmal nur mit dem EEPROM. Den PSoC kann ich bisher nur auslesen aber mit dem Schreiben weiß ich noch nichts neues.
    Da kommt immer ein Error :/
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  7. #7
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Heyho,

    hab mal wieder bisschen rumgespielt und dabei ist ein Programm rausgekommen um eine DS1307 auszulesen (gar nicht gewusst das man das Ding nicht mit 3,3V betreiben kann. Habs erst gemacht und dann gewundert warum ich das Ding nicht im Bus gesehen habe..... -.-)
    Code:
    // Compile with: GCC /Programme/DS1307.c -o /Programme/DS1307
    
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <linux/i2c-dev.h>
    #include <linux/i2c.h>
    #include <fcntl.h>
    #include <string.h>
    #include <sys/ioctl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <unistd.h>
    
    
    #define Buffer 7
    
    
    char BCD2D(char Wert)
    {
    	return (Wert%16 + 10 * (Wert/16));
    }
    
    
    int main()
    {
    	int File;
    	char Device[] = "/dev/i2c-0";
    	char RTC = 0x68;
    	char Date[7];
    	int i;
    	
    	if ((File = open("/dev/i2c-0", O_RDWR)) < 0) 														// I²C aktivieren
    	{
    		printf("I²C Modul kann nicht geladen werden!\n");
    	    return -1;
    	}
    	
    	if (ioctl(File, I2C_SLAVE, RTC) < 0) 																// Port und Adresse setzen
    	{					
    		printf("Deviceadresse wurde nicht gefunden!\n");
    		exit(1);
    	}
    	
    	Date[0] = 0;																						// Pointer auf Adresse 0 (Startadresse) setzen
    	
    	if(write(File, Date, 1) != 1) 
    	{
    		printf("Fehler beim Schreiben der Daten!\n");
    		return -1;
    	}
    	
    	if (read(File, Date, Buffer) != Buffer) 
    	{
    		printf("Fehler beim Lesen der Daten!\n");
    		return -1;
    	} 
    	else 
    	{
    		// Werte von BCD in Dezimal umwandeln
    		for(i = 0; i < Buffer; i++) 
    		{
    			Date[i] = BCD2D(Date[i]);
    		}
    		
    		printf("DS1307 Ausgabe");
    		printf("\n");
    		printf("\n");
    		
    		// Uhrzeit ausgeben
    		printf("Stunden: %d", Date[2]);
    		printf("\n");
    		printf("Minuten: %d", Date[1]);
    		printf("\n");
    		printf("Sekunden: %d", Date[0]);
    		printf("\n");
    
    
    		// Tage ausgeben
    		printf("Jahr: 20%d", Date[6]);
    		printf("\n");
    		printf("Monat: %d", Date[5]);
    		printf("\n");
    		printf("Tag: %d", Date[4]);
    		printf("\n");
    
    
    		
    		printf("Wochentag: %d", Date[3]);
    		printf("\n");
    	}
    	
    	close(File);
    	return 0;
    }
    Geändert von Kampi (10.10.2012 um 21:11 Uhr) Grund: Code aktualisiert
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Ähnliche Themen

  1. [ERLEDIGT] Raspberry Pi GPIO
    Von Kampi im Forum Raspberry Pi
    Antworten: 4
    Letzter Beitrag: 04.11.2012, 22:45
  2. [ERLEDIGT] Raspberry Pi Übertakten
    Von Kampi im Forum Raspberry Pi
    Antworten: 2
    Letzter Beitrag: 21.09.2012, 22:03
  3. [ERLEDIGT] Kommunikation AVR <-> Raspberry
    Von Goldenflash im Forum Raspberry Pi
    Antworten: 6
    Letzter Beitrag: 04.09.2012, 08:30
  4. Raspberry PI Lieferzeit
    Von Thalhammer im Forum Offtopic und Community Tratsch
    Antworten: 9
    Letzter Beitrag: 01.08.2012, 16:12
  5. Verkaufe Raspberry Pi zu verkaufen
    Von FD im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 8
    Letzter Beitrag: 03.07.2012, 07:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress