- Labornetzteil AliExpress         
Ergebnis 1 bis 7 von 7

Thema: Typecast für ADC-Wert??

  1. #1

    Typecast für ADC-Wert??

    Anzeige

    Praxistest und DIY Projekte
    Hallo Miteinand

    Gibt es im Bascom eigentlich die möglichkeit eines Typecasts?
    Ich möchte auch einen negativen Wert vom ADC anzeigen können.

    Code:
    Local Vr As Single 
    ...
    Start Adc
       Vr[single] = Getadc(0)
       Vr = Vr - 10
       Vr = Vr / 2
    
       Print N ; ". Die Temperatur beträgt : " ; Vr ; " C."
    Eigentlich müßte so ja für ADC = 0V ein Wert von -5 angezeigt werden?!
    Es gint aber immmer einen Zahlenüberlauf!
    Hat jemand ne Idee?

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    EInmal um die ecke:
    Code:
    LOCAL adcval AS WORD
    LOCAL asingle AS single
        adcval = getadc(..)
        asingle = adcval
       asingle = asingle - 10
      ...usw...
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Hey cool. So geht es jetzt. Vielen Dank!
    Warum ist denn der Umweg nötig?

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Getadc() ist dodel. der schreibt sein 16 Bit in das Return-Feld und tschüss.
    C-mäßiges casten in der Klammer tut der Bascom nicht
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    ok, danke dir.

    Habe da aber noch ne kleine Frage.
    Bin noch viemlich frisch in der Materie, wie ist das mit dem Syntax für Funktionen?

    Code:
    Declare Function Tmessen(Byte) As Single 
    ...
    Function Tmessen(byte)
    
       Start Adc
       Vrtemp = Getadc(0)
       Tmessen = Vrtemp
       Tmessen = Tmessen - 10
       tmessen = tmessen / 2
    
    End Function
    Ich will einen Wert des entspechenden ADC Eingang übergeben und den Messwert zurück haben.

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Code:
    Declare Function Tmessen(byval Arg As Byte) As Single
    
    
    Dim Varia As Single
    
    
    ' haupt programm
       Start Adc           ' das solltest du nur einmal am anfang machen
    
      Do
    
     Varia = Tmessen(4)
         print varia
         Loop
    End
    
    
    
    Function Tmessen(byval Arg As Byte) As Single
    Local Vrtemp As Word
    
       Vrtemp = Getadc(arg)
       Tmessen = Vrtemp
       Tmessen = Tmessen - 10
       tmessen = tmessen / 2
    
    End Function
    das ginge zum beispiel

  7. #7
    Ja genau.
    Das hab ich gesucht. Vielen Dank.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress