mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [BASCOM] Berechnung läuft nicht richtig


Autor: Thomas E. (tomedl)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe ein Problem mit meinem Programm. Es handelt sich hierbei um 
einen Bordcomputer für einen Roller, der hardwareseitig schon komplett 
aufgebaut ist. Allerdings funktioniert die Berechnung/Anzeige der 
Geschwindigkeit nicht. Ein Impuls vom Reed-Kontakt am Rad kommt aber, 
denn der Kilometerzähler zählt richtig hoch.

Kann da mal bitte wär drüberschauen? Der Code ist im Anhang.

Die Berechnung der Geschwindigkeit findet in folgenden Zeilen statt:
+ In der Hauptschleife unter dem Kommentar "Berechnung Geschwindigkeit"
+ In der INT0_isr
+ In der Timer0_isr
Umgewandelt werden die Werte in der Hauptschleife unter "Umwandlung 
Werte für LCD"

Besten Dank
Thomas

Autor: Thomas E. (tomedl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner eine Idee?

Autor: Profi :-) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frag mal in einer Stunde nochmal nach...

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du stoppst in der INT_0-ISR den Timer0. Der muß aber weiterlaufen, sonst
stimmt das Zeitregime nicht mehr und Dein "Time_umdrehung_n" wird nicht
weiter erhöht.

MfG Paul

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Time_umdrehung_ms   wird nirgens berechnet

Wenn alles funktioniert, kannst Du die Formel so umstellen, dass ein 
Befehl herauskommt.

Vermutlich musst Du noch ein bisschen mitteln, sonst hüpft die Anzeige.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke, dass in der INTo_isr der Befehl

Time_umdrehung_n = Time_umdrehung_ms

genau anders herum sein sollte.

Gruß

Rolf

Autor: Thomas E. (tomedl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Der letzte Eintrag von Gast hat Licht ins Dunkel gebracht - allerdings 
war dies nur ein weiterer Fehler, angezeigt wird am Display trotzdem 
keine geschwindigkeit. Nur der Kilometerstand erhöht sich.

Hat da noch jemand eine Idee, woran es liegen könnte?

LG

Autor: Thomas E. (tomedl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie scheine ich blind zu sein und komme einfach nicht auf den 
Fehler drauf. Der Km.Stand zählt hoch, jedoch scheint die Berechnung 
und/oder Anzeige der Geschwindigkeit nicht zu funktionieren.
Kann da mal wer drüberschauen?

Gruß
Thomas

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß keiner was?

Autor: Hans K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas

hier ein Auszug aus der Bascom-Hilfe, wie man mit Single's in Interupt's
umgeht.

R12 – R15 are not saved. When you use floating point math in the
ISR(not recommended) you must save and restore R12-R15 yourself in the
ISR.

My_Isr:
Push R12  ‘ save registers
Push R13
Push R14
Push R15
Single = single + 1 ‘ we use FP
Pop R15   ‘ restore registers
Pop  R14
Pop R13
Pop R12
RETURN

möglicherweise bringt dich das einer Lösung näher.

Gruß Hans

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.