80c535 Timer/Counter von 8Bit auf 16Bit (Frequenzen anzeigen lassen aufm LC-Display über HD44780)

OP #1153645
Lesenswert?
• ▲
▼
http://nopaste.info/35ecd989d8.html

Moin Volk! :)

Endlich hab ich mal gelegenheit hier bei euch ins Forum zu schreiben! 
hihi

Also bin ITA-Schüler 13.Klasse und im Blockprojekt.
Wir haben uns als Aufgabe genommen mit unserem Mikrocontroller
einen Frequenzmesser zu basteln.
Dabei war das klare Projektziel folgendermaßen definiert:
Timer0 = als Timer benutzen
Timer1 = als Counter benutzen
Unser Timer läuft 50ms und das 20 mal, um eine Sekunde zu kriegen.
Wir sollten der Einfachheit halber aber nur einen Frequenzbereich bis 
255Hz
abdecken, also nur die TL1 zum Anzeigen auf einem Display benutzen.
Soweit sind wir auch bis heute gekommen. Unseren ASM-Code habe ich 
angehangen.
Jetzt würde ich gerne Ansätze wissen, wie ich TH1 mit einbeziehe und 
somit einen Frequenzbereich von 65535 Hz abdecke.

Ich dachte schon daran, dass ich größere oder kleinere Frequenzbereiche 
messen kann, in dem ich meine Timer Sekunde vergrößer oder verkürze.
Dann müsste ich halt nur im nachhinein wieder mit dem Divisor oder 
Multiplikant zurück dividieren bzw. multiplizieren.

Dann hätte ich aber immer noch das Problem, dass ich bei größeren 
Frequenzen eine 16Bit Variable definieren müsste, um die Ausgabe zu 
realisieren. Und laut unserem Code können wir nicht auf die 
Akkumulatoren A oder B zugreifen, weil sie benutzt werden...

MfG Rahman
Gast #1154212
Lesenswert?
• ▲
▼
Da es in ASM ist, sollte

Var16  db  2

funktionieren. "db" bedeutet "define byte space" und reserviert dir in 
dem Fall 2 Byte Speicher. So macht es zumindest der Assembler, den wir 
in der Ausbildung benutzt haben, ich denke aber, der WH machts nicht 
groß anders. Andersrum gesehen sagt dir das Handbuch zum WH bestimmt, 
wie's geht...

Das Überlauf-Handling musst du aber selbst implementieren, in C machts 
der Compiler.

Ralf

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.