Hallo,
ich will mit einem ATmega16 eine Lichtschranke bauen,
die mir die Zeit misst die ein Gegenstand braucht um 10cm zurückzulegen un dann die Geschwindigkeit in m/s auf 3 7-Segment Anzeigen ausgeben.

Die Lichtschranken sind kein Problem, das habe ich mit Interrupts gelöst.

Jetzt kann ich ja die Zeit die der Timer ausgibt in eine Variable schreiben.
Wenn ich da gleich Byte nehme, kann ich damit dann rechnen?
Ich müsste ja laut v = s/t 0,1 / Variable nehmen und das dann auf 3 Stellen runden, ohne Nachkommastellen.

Wenn das geht wäre das ja schonmal super
Dann hätte ich eine 3stellieg Byte Zahl.

Was ja ganz gut funktioniert ist folgendes:

Code:
Dim Var As Byte

Var = 2
PortA = Var
Dann geben die 8Pins von PortA die Bytezahl aus.
Funktioniert auch mit meinen BCD Dekodern, die 4 Inputs haben und dann auf 7-Segment ausgeben.

Jetzt muss ich aber auf PortA 2 Stellen ausgeben, also einmal auf Pin 1-4 eine Stelle und auf Pin 5-8 die 2.
Die 3. Stelle gebe ich dann am Port C aus.

Meine Frage wäre jetzt wie kann ich das anstellen?
Also die Bytezahl in 3 einzelne teilen und dann auf den "halben" Port ausgeben.

Was natürlich gehen würde aber unschön ist, dass ich mir für jede Ziffer einen Bitcode aufschreibe und dann mit Select wähle.


Danke schonmal,
Lukas