Forum: Mikrocontroller und Digitale Elektronik Durchlaufzeit berechnen WIE?


von Eugen (Gast)


Lesenswert?

Hallo alle mit einander,

ich sitze hier und überlege wie Ich den Wert für meinen Zähler richtig 
berechne, damit auch die Richtige Zeit dabei rauskommt.

Also, es geht darum, dass ich in meinem Programm einen Portpin auf HIGH 
setze und möchte, das er nur eine bestimmte Zeit gesetzt bleibt und 
diese Zeit möchte ich ausrechnen. Ich möchte, dass wenn die Zeit ( 
Durchläufe) gezählt werden,  das Programm aber weiter arbeitet. Deswegen 
rufe ich ein Unterprogramm in meine main Schleife auf, in der gezählt 
wird wie oft ich schon da drin war. Beim jedem Aufruf wird der Speicher 
um 1 erhöht. Wenn ich jetzt sage, dass mein Speicher nach z.B.: 1ms den 
Wert  erreichen soll, muss ich wissen bis wo ich Zählen muss.

Ich arbeite mit einer internen Frequenz von 24,5 MHz und habe einen 8bit 
µC. Einen Timer will ich dafür nicht nehmen. Die Durchlaufzeit hängt 
doch von der Länge und den Befehlen meine Codes ab oder liege ich da 
Falsch.

Kann mir einer von euch ein Tipp geben, ich wäre euch dankbar!

von Matthias L. (Gast)


Lesenswert?

>Die Durchlaufzeit hängt
>doch von der Länge und den Befehlen meine Codes ab oder liege ich da
>Falsch.

Soweit korrekt. Aber da du von main sprichst, vermute ich das du in C 
programmierst. Da musst du den entstehenden Assemblercode analysieren 
und Befehle zählen um zu wissen wielange er benötigt für einen 
Durchlauf.



>Einen Timer will ich dafür nicht nehmen.

Das würde ich dir aber stark raten!

von Eugen (Gast)


Lesenswert?

Hallo lippy,

giebt es den keine andere möglichkeit, die ohne Timer gut funktioniert?

von Matthias L. (Gast)


Lesenswert?

>die ohne Timer gut funktioniert?
Das widerspricht sich doch.

>keine andere möglichkeit
Wie ich gesagt habe, du musst Befehle zählen.

von crazy horse (Gast)


Lesenswert?

"will" ich dafür nicht nehmen - das ist kein Argument.
Kann ich nicht nehmen, wäre akzeptabel. Das zeugt dann i.a. von 
mangelnder Programmierintelligenz, dem kann man hier abhelfen. Ein Timer 
kann problemlos mehrere Aufgaben steuern.
Gegen "ich will nicht" ist kein Kraut gewachsen, also sinnlos.

von Bastler (Gast)


Lesenswert?

in C einfach testen:

nimm irgendeinen I/O Pin, vor der Funktion setzen, nach der Funktion 
rücksetzen und mit dem Oszi nachschauen...

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.