-
-
Erfahrener Benutzer
Robotik Einstein
So ganz versteh ich nicht was Du da machst.
Zuerst schimpfst Du über die schlechte Präzision der 10Bit A/D Wandler und dann machst Du einen 8Bit Wert daraus?
Das geht auch eleganter, es gibt in den Konfigurationsregistern das ADLAR Bit, das einen Linksbündigen 8Bit Wert ermöglicht.
Ich hab auch den Eindruck, das deine /16 Routine irgendwie nicht stimmt.
clc ;Carry Flag loschen
ror r19 ;High Byte /2 Teilen Übertrag ins Carry
ror r18 ;Carry links einschieben und durch 2 Teilen
clc ;Carry für die nächste /2 Teilung löschen
ror r19
ror r18
clc
......
müsste richtiger sein.
Beim LSR wird das Carry Flag, soweit ich weiß, nicht übertragen.
Was sagt der Simulator dazu ?
Ich würd aber trotzdem die 10Bit Auflösung des A/D Wandlers verwenden.
Da ja "nur" 16 Werte mit max 1024 addiert werden, kann ein Word (max. 65536) nicht überlaufen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen