www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR: ADC-Wert auf intel. alphanumerischen Display (nicht LCD!)


Autor: Rudi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Möchte gerne einen ADC-Wert auf einem intelligenten alphan. Display
(HP HDSP-2531, wie HDSP-2112) anzeigen lassen.
Bei dem HDSP müssen hier die Adresse und Steuersignale
mitgeschickt werden, das Anzeigen von Klartext ist aber
kein Problem und funktioniert so weit einwandfrei.
Nur habe ich keine Ahnung wie ich nun einen Analog-Wert des ADCs
als z.B. "2.87V" im Display anzeigen lassen kann.
So sieht es zur Zeit aus (habt erbarmen, ich bin Anfänger! :-)
Bin für jeden Tipp dankbar!!!
/Rudi
'*** ADC - Messung
Sub Hdsp_befehl_messung(byval Cycles As Byte):
Local X_local As Word

Dim Ad As Word
Dim C As Word
Dim Ca As String * 1
Dim Cb As String * 1


Config ADC = Single , Prescaler = Auto , Reference = Avcc
Const D = 5 / 1023                                      '5V Avcc / 1023 ADC-Wert
Start ADC

 Do
  For X_local = 1 To Cycles
   Ad = Getadc(0)
   C = Ad * D
   Ca = Str(low(c))
   Cb = Str(high(c))
   Char_buffer(1) = " "
   Char_buffer(2) = " "
   Char_buffer(3) = " "
   Char_buffer(4) = " "
   Char_buffer(5) = Cb
   Char_buffer(6) = "."
   Char_buffer(7) = Ca
   Char_buffer(8) = "V"
   Call Hdsp_befehl_write_chars
  Next
 Loop

End Sub

'*** CHAR_BUFFER AUFS DISPLAY SCHREIBEN ****************************************
Sub Hdsp_befehl_write_chars:

Local X_local As Byte
Local Y_local As Byte
   Reset Hdsp_wr

   For X_local = 0 To 7
      Hdsp_a0 = X_local.0                                   'A0 - A2 geben die Position des zu schreibenden Zeichens an (0 bis 7)
      Hdsp_a1 = X_local.1                                   'Daher übernehmen wir einfach die Bits von X_local
      Hdsp_a2 = X_local.2
      Hdsp_a3 = 1                                           'BIT 3 muss 1 sein für CHARACTER RAM
      Hdsp_a4 = 1                                           'BIT 4 muss 1 sein für CHARACTER RAM

      Y_local = X_local + 1                                 'Da Arrays immer mit 1 anfangen noch y_local benutzen...
      If Asc(char_buffer(y_local)) < 144 Then               'Wir haben 128 + 16 Zeichen
         Hdsp_data = Asc(char_buffer(y_local))
         Reset Hdsp_ce                                      'Mit CE das Display zum Übernehmen von Adresse + Daten bringen
         Set Hdsp_ce
      End If
   Next
   Set Hdsp_wr
End Sub

Autor: Torsten B. (torty)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab zwar keine Ahnung Basic, aber in ASM musst Du zur Anzeige erst die 
Zahlenwerte in einen String umwandeln. Den kannst Du dann einfach 
ausgeben.
Du musst eine Routine schreiben, die Dir berechnet, wieviel 100er , 
wieviel 10er und wieviel 1er Dein Messwert hat (Vergiss nicht ein Komma 
einzubauen).

Es gibt hier bestimmt zu dieser Wandlung einige Beiträge.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.