Forum: Mikrocontroller und Digitale Elektronik 80c535 Timer/Counter von 8Bit auf 16Bit (Frequenzen anzeigen lassen aufm LC-Display über HD44780)


von Abdullah R. (inv)


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

von Peter D. (peda)


Lesenswert?

Abdullah Rahman wrote:
> http://nopaste.info/35ecd989d8.html

Sowas macht man nicht.
Sorce als HTML, DOC, PDF, BMP usw. ist ein ganz böses Foul.

Eine ASM-Source heißt entweder *.asm oder *.a51 und dann als 
Dateianhang.
Bzw. wenn es mehrere Files sind, als *.zip.


Peter

von Abdullah Rahman (Gast)


Lesenswert?

Ich hatte erst versucht die Datei anzuhängen, das klappte irgendwie 
nish...:(

Unsere Datei hat die Endung *.s51 weil wir die Wickenhausener-Tools 
benuten.

Hier die Datei noch einmal zum runnaladen...

http://uploaded.to/?id=v5ys9o

von Stephan H. (stephan-)


Angehängte Dateien:

Lesenswert?

na dann mach ich das mal,..

von Abdullah R. (inv)


Lesenswert?

kann mir denn wenigstens jmd sagen, wie ich eine 16bit variable 
definieren kann?

bzw. einen wert speichern kann der bis 65535 geht...büdde :(

von Ralf (Gast)


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

von Stephan H. (stephan-)


Lesenswert?

nimm einfach 2 Speicherzellen und betrachte sie als Variable.
zB. WH und WL

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.