www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Durchlaufzeit berechnen WIE?


Autor: Eugen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Eugen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo lippy,

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

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>die ohne Timer gut funktioniert?
Das widerspricht sich doch.

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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in C einfach testen:

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

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.