mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Impulslänge messen - kann ich das so machen?


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

Bewertung
0 lesenswert
nicht lesenswert
Hey, brauche einmal jmd der mir vielleicht einen Denkfehler abnimmt...

Ich hab das obige Programm über's STK500 mit Port D an die Switches 
gehangen und geb die anzahl der "fuel_ticks" jede sekunde über ein LCD 
aus um zu sehen ob das überhaupt soweit funktioniert... (Die ausgabe 
efolgt im hautpprogamm...)

Die ISR's für Int0 und Int2 hab ich weggelassen da sie nicht zum Problem 
beitragen.

Mein problem ist das z.b. wenn ich den Knopf die ganze Zeit gedrückt 
halte (also auf Masse ziehe wodurch der Zähler ununterbrochen zählen 
sollte) der "fuel_ticks" z.t. niedriger ist als wenn ich den knopf 
mehrmals kurz drücke und zum Teil auch scheinbar zufällig hohe/niedrige 
Werte annimmt (bei kurzem Drücken). Wie kann das sein? Eigentlich sollte 
der Wert am höchsten sein wenn der Knopf durchgehen gedrückt wird....

Ein überlauf des als "unsigned short" deklarierten Zählers schließe ich 
eigentlich aus da der Wert in der Timer_Overflow Interrupt routine nur 
mit einer Frequenz von 31,150 kHz inkrementiert wird, (1/(8.000.000 / 
256)) und somit die 2^16 - 1 (65535) nicht auch nur zur hälfte erreichen 
kann. Außerdem läuft die Routine ja nur während eines "Pulses", also 
während der Pin auf Masse gezogen wurde. Somit müssten sich die größten 
Werte einstellen wenn der Knopf ununterbrochen gedrückt wird da die 
Routine in desem Fall durchlaufen müsste, oder hab ich was falsch 
gemacht?

Denkfehler? Rechenfehler?

Bitte um Hilfe!
Danke im vorraus, Dennis Fisch

Autor: FBI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"fuel_ticks * 1000"

Und Du meinst wirklich, daß da nichts überläuft?

Autor: Dilligent (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh verdammt... mist, ja ja auf alles achtet man und dann sowas, sorry 
für meinen sinnfreien beitrag :(

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.