-
        

Ergebnis 1 bis 7 von 7

Thema: I2C

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.01.2005
    Beiträge
    103

    I2C

    Anzeige

    Hallo ich habe mir einen ds1621 gekauft und möchte ihn nun in einen pic einlesn und über RS232 ausgeben!! ich habe schon vieles ausprobiert aba ich schaffe es einfach nicht!! kann mir bitte jemand helfen!!
    ich habe beim DS1621 a0 a1 a2 auf masse gelegt (adresse 0x90)
    habe dieses programm ausprobiert aba es funktioniert nicht!!

    mfg doolitle

    #include<16F873.h>
    #use delay (clock=4000000)
    #use RS232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
    #use i2c(master, sda=PIN_C4, scl=PIN_C3)
    #include<stdlib.h>


    void main (void)
    {

    int8 temp;
    while(TRUE)
    {
    i2c_start();
    i2c_write(0x90);
    temp=i2c_read();
    i2c_stop();
    printf("Temperatur= %u°C",temp);
    }
    }

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.12.2005
    Ort
    Tann / ZH
    Alter
    61
    Beiträge
    264
    Hast Du schon mal die Suchen-Funktion in diesem Forum ausprobiert ?
    MfG
    Ruedi

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    01.01.2005
    Beiträge
    79
    Hey, doolitle15!

    Der Quellcode ist zu knapp um daraus etwas näheres über Deine Algorithmen zu erfahren.
    Wie funktionieren Deine Funktionen im einzelnen?

    Ich programmiere die dinger (PIC) zwar in Assembler aber wenn ich mir Dein Programm ansehe
    und annehme, dass "temp=i2c_read(); " nur vom Sensor Liest und Ihn nicht vorher addressiert
    um ihm erstmal zu sagen ob gelesen oder geschrieben werden soll, dann kann das so nicht funktionieren.

    Was klappt denn nicht?
    Kannst den Fehler eingrenzen?
    Hast versucht zu debuggen, zB. mit einer LED an einem freien Pin?

    Poste doch mal mehr von Deinem Quelltext oder beschreibe Deine Algorithmen.


    Ansonsten gibt es hier so einiges über das I2C:

    http://microchip.com/stellent/idcplg...0&filterID=392

    oder hier:

    www.sprut.de

    oder an zahlreichen anderen Seiten..


    Gruß

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.01.2005
    Beiträge
    103
    naja es ist so ich kenn mich auch noch nicht so gut aus mit i2c! es ist das erste mal das ich diese funktion nutze!!
    ich habe aba schon verstanden das man eine adresse vergeben muss(DS1621 : a0 a1 a1 auf masse --> Adresse 0x90)
    ich will eigentlich nur das mein pic die temperatur werte einliest und sie über RS232 am pc ausgibt!!
    mein programm hab ich mehr oder weniger von einem pdf file über C-programmierung kopiert!! aba es funktioniert nicht!!
    was hab ich falsch gemacht??
    kennt wer eine gute seite wo c-programmierung in pics gut beschriebn ist?
    wer ist eigentlich der master und slave?? (pic oder DS1621)

    ich danke für jeden rat!!

    mfg doolitle

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    01.01.2005
    Beiträge
    79
    Also der master ist der PIC, er erzeug ja auch den Takt mit dem die Daten rein oder rausgehen.
    I2C ist von Phillips entwickelt worden, ich meine es gäbe eine BUS-Spezifikation von dieser firma.
    Musst mal im Netz suchen.

    Ausserdem gibt es auf www.microchip.com ein i2c.tutorial,
    es erklärt den kern der Sache ziemlich jut!

    Zu PIC und C fällt mir im moment http://www.fernando-heitor.de/ ein.
    Kenne die seite jedoch nicht gut da ich mit PIC und C nichts zu tun hab.

    Gruß u. viel Erfolg!

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    Hallo

    Ok, du scheinst den PCM (o.ae.) von CCS zu verwenden. Der hat I2C als library drin, die sollten normalerweise funktionieren.

    Aber um eine Temperatur auszulesen musst Du schon ein bisschen mehr machen (z.B. Commandbyte, Zweite START-Bed, etc).
    Hast Du ins Datenblatt geschaut? Dort stehts im Detail drin.
    Die #use I2C ist glaub auch nicht ganz vollstaendig (habe jetzt aber grad kein Manual da)

    Ich weiss jetzt grad nicht auswendig, aber der Compiler hat ev. einen Treiber fuer den Chip dabei (der ist ja ziemlich std). Schau mal in den Include oder Example Verzeichnissen.

    Such sonst mal im Internet nach PCM und dem Tempsensor, da sollte was zu finden sein.

    Gruess
    Fritzli

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.05.2004
    Beiträge
    304
    Ob das jetzt ein Zufall ist, dass gerade ein Klassenkollege diesen IC mit dem gleichen Pic verwendet... egal

    http://www.pic-c.com/forum/old/messages/7.html
    Hier hat jemand eine auslese Routine dafür geschrieben

Berechtigungen

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