mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS18S20 CRC Berechnung


Autor: Andre (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich suche ein AVR Assembler Beispiel für die Berechung der Prüfziffer
des Sensors.
Sämtliche gefundenen Programme arbeiten nur mit der Datentabelle.

Aus dem Beispiel von Dallas (AN27) werde ich nicht schlau:
http://pdfserv.maxim-ic.com/en/an/app27.pdf

Hat jemand von Euch einen Tip ?
Benutze den 4433.

Vielen Dank im Vorraus.
Andre

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und warum nimmst Du nicht die Tabelle?

Besser als Maxim oder die wikis dieser Welt wird Dir das hier auch
nicht erklären können, fürchte ich.

Autor: Andre (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weil der 4433 nur 256 Byte EEProm hat und ich dort schon andere Werte
speichere (z.B. die RomCodes)

Andre

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast von 4 kB kein viertel-Kilo für die Tabelle übrig?

Na gut.

Hast Du das Assembler-Programm von Seite 5 Deiner verlinkten Anleitung
mal in AVR-Assembler übersetzt und simuliert? Du kannst es dann ja
vergleichen mit dem Berechnungsfortschritt auf Seite 6.

Das Prinzip von CRC ist Dir aber schon vertraut? Die Einführung über
die Wikipedia fand ich ganz hilfreich.

Autor: Andre (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4kB?? Wie lese ich denn Daten aus dem Programmspeicher?

Das Beispiel kommt mit 15 Befehlen aus (wenn mach die Sicherung der
Register weg lässt) das ist schon ein Unterschied zu einer Tabelle.

Allerdings muss ich, um es AVR kompatibel zu machen, erst verstehen.
Wäre ja möglich, dass dies schon einmel jemand vor mir durch hat.

Das Prinzip von CRC ist mir durchaus bekannt. Es gibt allerdings
unendlich viele Berechnungsmethoden.

Andre

Autor: mkmk (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei meine Lösüng, mit der ich iButtons auslese. Also jene Dinger, die
nur eine SerieNummer und sonst nichts beinhalten. Dort siehst Du, wie
man die CRC erzeugt (ohne Tabelle).

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus dem Programmspeicher kannst Du mit dem Befehl LPM lesen. Da gibt es
notfalls auch genug Beispiele dafür.

Die Live-Berechnung ist natürlich viel kompakter, aber erheblich
langsamer. Da muß man abwägen, ob es eher auf Platz oder auf Tempo
ankommt.

Bei der Lösung von mkmk bitte Achtung: iButtons verwenden -- wenn ich
mich nicht irre -- eine 16-Bit CRC, während Du eine 8-Bit CRC brauchst.

Autor: mkmk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Philipp
Ist schon richtig so. iButton verwenden - wie Du richt sagst -
8bit-CRC. Und das von mir geliefert Beispiel ist 8bit-CRC.

Autor: peter dannegger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei eine schnelle CRC in Assembler.


Peter

Autor: Andre (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Philipp
Lpm - Stimmt - sorry, habe ich noch nie benutzt

@mkmk, Peter
werde mir die Programme gleich mal ansehen.

Danke an Alle !

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.