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


von Man (Gast)


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

von Peter Dannegger (Gast)


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

von Man (Gast)


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

von Peter D. (peda)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.