Problem mit ADC-Umrechnung bei Attiny24

Gast #896756
Lesenswert?
• ▲
▼
Ich habe gerade ein Programm geschrieben, was mir eine an ADC-Kanal 0 
anliegende Spannung auf einer dreistelligen Siebensegmentanzeige 
darstellen soll. Bei der Simulation stellte ich fest, daß offenbar meine
Formel zur Umrechnung nicht das ausgibt, was ich erwarte. Ich verwende 
die Betriebsspannung als Referenz und muß daraufhin rechnen lassen:
XVOLT= (5 Volt / 1024)*Messwert.

Messwert läßt sich auch schön mittels Schieberegler im Simulator 
zwischen
0 und 1023 einstellen, aber XVOLT gibt mir Null aus. Offenbar schmeckt 
ihm
das "5 /1024" nicht.

Ich glaube, heute ist nicht mein Tag.... ;-(

MfG Paul
Angehängte Dateien:
Gast #896773
Lesenswert?
• ▲
▼
Danke erstmal an Euch. Es haut trotzdem nicht hin.
Die erste Variante liefert bei 1023    XVOLT von 4.
Die 2. liefert bei 1023    XVOLT von 3192.
Die 3. liefert immer Null.

Es kann natürlich auch sein, daß es in Natura funktioniert und mich bloß 
der Simulator zum Narren hält.

MfG Paul
#896793
Lesenswert?
• ▲
▼
Wie wäre es damit (ASM)?

- Messwert 10-bittig (rechtsbündig) in 2 Register einlesen
- Messwert mit 125 multiplizieren (es entstehen 3 Bytes)
- unteres Byte wegwerfen (durch 256 teilen) (jetzt sind es noch 2 Bytes)
- Durch Subtraktionsmethode in 5 Ziffern zerlegen, wobei die beiden
  oberen (linken) Ziffern aufgrund des begrenzten Wertevorrates immer
  0 sind, es entstehen also 3 (nutzbare) Ziffern
- Ziffern ausgeben, erste Ziffer mit Dezimalpunkt

Dazu solltest Du aber auf den Tiny24 verzichten und den billigeren Mega8 
benutzen, dann hast Du Hardware-Multiplikation und genügend Pins, um 
auch den Dezimalpunkt mit auszugeben.

...
Gast #896799
Lesenswert?
• ▲
▼
ber der ersten variente ist das ergebniss tatsächlich 4.
bei der zweiten müsste es 4995 sein (siehe unten).
die dritte ist das selbe wie du gemacht hast das ergebniss ist immer 0.

der grund warum die zweite methode falsch ist müsste ein überlauf sein. 
1023*5000 ist schließlich deutlich über 32000. caste das auf uint32_t 
dann sollte es funktionieren.

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.