mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeitmessung über Timer und Interrupt


Autor: Man (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi alle miteinander,
hätte da mal ein ganz großes Problem, denn ich soll mittels C
auf einen 1Wire Bus zugreifen.
Hierfür muss ich als Slave - Gerät alles Zeitkritisch betrachten.

Jetzt meine Frage:
Mit welcher Funktion bzw, Initialisierung von Timer und Interrupt kann
ich auf eine Fallende Flanke den Timer starten, und bei der steigenden
Flanke wieder anhalten. Danach möchte ich mir den Wert des Zählers
anzeigen lassen.
Hätte mir da jemand eine Idee, oder noch besser ein Beispielcode in C
für meinen PIC ?

Im vorraus schon mal danke fürs nachdenken:-)

Grüßle Man

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für den 1-Wire ist in der Codesammlung ein C-Beispiel für den AVR.

Ob aber der PIC schnell genug ist, daß die Codelaufzeiten nicht das
ganze Timing verwürfeln, möchte ich bezweifeln.

D.h. da hilft dann nur noch alle zeitkritischen Routinen in pure
Assembler zu machen.


Peter

Autor: Man (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Peter,

vielen Dank für deine info.
Aber sind die ganzen Beispiele für 1Wire nicht alle
nur für Mastergeräte gedacht?
Habe bis jetzt noch keine Funktionen gefunden, welche mir ermöglichen
meinen Pic als Slave am 1Wire Bus anschließen zu können.
Wenn du da Funktionen hast, bzw. du weißt wo ich die finden könnte,
wäre ich dir sehr dankbar für einen Tip.
kann auch in Assembler sein, muss aber nicht :-))

Grüßle Man

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein 1-Wire Slave geht nicht ohne Hardwareunterstützung.

Du must ja den 1µs-Puls des Masters strecken, wenn Du eine 0 senden
willst.
Bei den AVRs wüßte ich da nur den ATTiny26 oder ATTiny2313, mit dem man
sowas machen kann (USI im I2C-Mode).

Zusätzlich dann den 1-Wire noch auf den Captureinput, um die Startzeit
zu ermitteln.


Peter

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.