AVR: ADC-Wert auf intel. alphanumerischen Display (nicht LCD!)

Gast #1450130
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
1
'*** ADC - Messung
2
Sub Hdsp_befehl_messung(byval Cycles As Byte):
3
Local X_local As Word
4

5
Dim Ad As Word
6
Dim C As Word
7
Dim Ca As String * 1
8
Dim Cb As String * 1
9

10

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

15
 Do
16
  For X_local = 1 To Cycles
17
   Ad = Getadc(0)
18
   C = Ad * D
19
   Ca = Str(low(c))
20
   Cb = Str(high(c))
21
   Char_buffer(1) = " "
22
   Char_buffer(2) = " "
23
   Char_buffer(3) = " "
24
   Char_buffer(4) = " "
25
   Char_buffer(5) = Cb
26
   Char_buffer(6) = "."
27
   Char_buffer(7) = Ca
28
   Char_buffer(8) = "V"
29
   Call Hdsp_befehl_write_chars
30
  Next
31
 Loop
32

33
End Sub
34

35
'*** CHAR_BUFFER AUFS DISPLAY SCHREIBEN ****************************************
36
Sub Hdsp_befehl_write_chars:
37

38
Local X_local As Byte
39
Local Y_local As Byte
40
   Reset Hdsp_wr
41

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

49
      Y_local = X_local + 1                                 'Da Arrays immer mit 1 anfangen noch y_local benutzen...
50
      If Asc(char_buffer(y_local)) < 144 Then               'Wir haben 128 + 16 Zeichen
51
         Hdsp_data = Asc(char_buffer(y_local))
52
         Reset Hdsp_ce                                      'Mit CE das Display zum Übernehmen von Adresse + Daten bringen
53
         Set Hdsp_ce
54
      End If
55
   Next
56
   Set Hdsp_wr
57
End Sub
#1459686
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.