- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 8 von 8

Thema: Nachkommastelle Bascom

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2011
    Beiträge
    6

    Nachkommastelle Bascom

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    kenne mich noch nicht sehr gut mit der Programmierung von Mikrocontrollern aus und habe zunächst erstmal recht einfach mit einem Thermometer angefangen. Arbeite mit dem Sensor Lm75. Hat auch alles gut geklappt, nur leider schaffe ich es nicht, die Nachkommastelle anzeigen zu lassen.
    Habe mir das Datenblatt angeschaut und leider nur verstanden, dass man Ack und Nack verwenden muss.
    Vielleicht kann mir hier jemand helfen?!

    Mein bisheriges Programm lautet:
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 ,
    Db7 = Portb.0 , E = Portb.4 , Rs = Portb.6 Config Lcdbus = 4
    Initlcd
    Cls
    Config Scl = Portb.5
    Config Sda = Portb.7

    Dim Temp As Byte
    '****************** Initialisierung ***********************

    Ddrb = &B11111111 'Port B als
    Ausgangsport
    Ddrd = &B01110000 'D4, D5, D6
    als Ausgang; Rest als Eingang
    Portd = &B10001111 'Eingänge
    auf high legen




    '******************** Hauptprogramm ***********************
    Do
    I2cstart
    I2cwbyte 145
    I2crbyte Temp , Ack
    I2crbyte Temp, Nack
    I2cstop
    Locate 1 , 1
    Lcd Temp
    Lcd "C"
    Locate 1 , 0
    Wait 1
    Loop
    End

  2. #2
    Neuer Benutzer
    Registriert seit
    16.02.2011
    Ort
    Hannover
    Beiträge
    4

    Re: Nachkommastelle Bascom

    Zitat Zitat von anfänger99
    Habe mir das Datenblatt angeschaut und leider nur verstanden, dass man Ack und Nack verwenden muss.
    Vielleicht kann mir hier jemand helfen?!
    Hallo Anfänger!

    Ich bin hier zwar auch neu im Forum.... besitze aber schon einige Erfahrungen mit AVR und I2C.
    Allerdings habe ich den LM75 selber noch nicht verwendet.... nur den DS1624 bzw. DS1631.


    Das mit ACK und NACK hast du aus dem Datenblatt falsch heraus gelesen.
    Du musst dies nicht selber senden!

    Du benötigst zwar zwei Byte-Variablen zum Einlesen der Temperaturdaten, aber diese würde ich nicht "Ack" und "Nack" nennen!

    Nenn die Variablen doch zum Beispiel "Lm_byte_1" und "Lm_byte_2".
    Du kannst auch ein Array verwenden: Lm_byte(2)


    Noch ein Tipp:
    Schau dir in der BasCom-Hilfe mal die Anweisung "I2creceive" an.


    Ich bin mir nun aber nicht sicher, ob der LM75 überhaupt eine Kommastellenberechnung auf 0,1°C zulässt... bzw. ob die übermittelten Daten dafür ausreichen.
    Ansonsten würde es bei den 0,5°C bleiben (D7 hat eine "1").

    Grüße,
    Sky30
    Niemals Nie sagen.... es sei denn, es ist endgültig!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2011
    Beiträge
    6
    aber ack bedeutet doch, dass noch ein byte ausgelesen wird und nack, dass danach keins mehr ausgelesen werden soll, oder?
    Und das braucht man dann doch für die Programmierung, oder habe ich das falsch verstanden?[/quote]

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    LM75 kann 0,1°C-Schritte. Wie akkurat die sind ist aber auch wieder was Anderes
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  5. #5
    Neuer Benutzer
    Registriert seit
    16.02.2011
    Ort
    Hannover
    Beiträge
    4
    Zitat Zitat von anfänger99
    aber ack bedeutet doch, dass noch ein byte ausgelesen wird und nack, dass danach keins mehr ausgelesen werden soll, oder?
    Und das braucht man dann doch für die Programmierung, oder habe ich das falsch verstanden?
    Hallo!

    Nun ja, du hast es schon richtig verstanden.
    Allerdings musst du dies hier nicht extra senden.
    Schließlich erwartet der LM75 einen definierten Datenstrom und sendet auch nur diesen..... eben zwei Bytes zurück.

    Such hier doch mal im Forum nach DS1721, oder klick einfach HIER DRAUF
    Da gibt es auch einen Beispielcode.


    @ Vitis: Bist du sicher, das der LM75 auch die Kommastellen mitsendet........ und nicht nur die 0,5Grad Auflösung?
    Beim DS1624 bzw. DS1631 werden dafür extra zwei Bytes benötigt.
    Einmal der Wert vor dem Komma und einmal der Wert hinter dem Komma in 1/32 Schritten.


    Grüße,
    Sky
    Niemals Nie sagen.... es sei denn, es ist endgültig!

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Es gibt /M75 Typen die das machen, ja.
    Hab davon einige verbaut
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #7
    Neuer Benutzer
    Registriert seit
    16.02.2011
    Ort
    Hannover
    Beiträge
    4
    Zitat Zitat von Vitis
    Es gibt /M75 Typen die das machen, ja.
    Hab davon einige verbaut

    Hallo Vitis!

    Das ist gut zu wissen.

    Bedeutet das aber nun, dass es unterschiedliche Typen vom LM75 gibt?
    Generell fällt wohl fast jedem die Typenbezeichnung LM75 ein, wenn er an I2C und Temperatur denkt.
    Ich bin vor einiger Zeit aber per Zufall an die DS1624 und DS1631 geraten und habe daher den LM75 bis Heute noch nicht eingesetzt.

    Auch das Datenblatt zum LM75 finde ich gegenüber dem DS1624 ziemlich spärlich.
    Bei den Bytes zur Temperatur steht lediglich,
    dass D6 bis D0 einen "undefinierten" Zustand besitzen........
    D7 das 0,5Grad-Bit ist......
    und D15 bis D8 den Temperaturwert enthält.

    Scheinbar habe ich das Datenblatt vom "falschen" LM75 gelesen.

    Grüße,
    Sky
    Niemals Nie sagen.... es sei denn, es ist endgültig!

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    ja, hab ich auch nicht gewusst, hab die Dinger aber mal geliefert bekommen.
    Die heißen dann LM75B

    http://www.nxp.com/documents/data_sheet/LM75B.pdf

    0,125°C Auflösung haben die dann

    meine Anwendung:
    http://www.weingut-hoerner.de/Bilder...hp?dayoffset=2

    Die LM75A haben nur 0,5°C
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Berechtigungen

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

12V Akku bauen