Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Analog/Digital Wandler Kategorie: CC-Pro Unit & Appl.Board (von Max - 23.03.2014 10:59)
Als Antwort auf Analog/Digital Wandler von NOOBIE - 21.03.2014 19:52

> Dim wert1, wert2 As Single
> Dim zeile1(10) As Char
> Dim zeile2(10) As Char
>
> Sub main()
>   LCD_Init()
>   LCD_ClearLCD()
>   LCD_CursorOff()
>
>   zeile1=" 0.00"
>   zeile2=" 0.00"
>   Do While (True)
>     ADC_Set(ADC_VREF_VCC,0)
>     wert1 = ADC_Read()*5.0/1024.0
>     ADC_Set(ADC_VREF_VCC,1)
>     wert2 = ADC_Read()*5.0/1024.0
>     Ausgabe()
>
>     AbsDelay(500)
>   End While
> End Sub
>
> Sub Ausgabe()
> Dim einheit(3) As Char
>   einheit = " V"
>     If wert1>4.99 Then
>             zeile1=" HHHH"
>     Else
>             Str_WriteFloat(wert1,2,zeile2,1)   !!!!Du hast zwei Mal zeile2!!!
>     End If
>
>    If wert2>4.99 Then
>             zeile2=" HHHH"
>     Else
>             Str_WriteFloat(wert2,2,zeile2,1)
>     End If
>
>     LCD_CursorPos(0x00)
>     LCD_WriteText(zeile1)
>     LCD_WriteText(einheit)
>     LCD_CursorPos(0x40)
>     LCD_WriteText(zeile2)
>     LCD_WriteText(einheit)
> End Sub
>
> hi ich bin totaler neuling im programmieren und entschuldige mich schon mal für die fragen!
> also ich brauche für ein schulprojekt den C-Control pro mega128 CAN damit will ich eine spannung
> messen und auf dem display anzeigen lassen!
> nun mein problem: an adc0 liegen ständig 4,6V an und an adc1 schwankt die spannuing zwischen 1.4V
> und 1.7V obwohl ich da nichts angeschlossen habe! adc0 funktioniert überhaupt nicht und wenn
> an adc1 gegen gnd eine 1.5V batterie messe zeigt das display 0.00 an. ich weiÃ? absolut nicht mehr
> weiter und hoffe ihr könnt mir helfen.
> schonmal danke im vorraus
> mfg NOOBIE

Hallo,
offene Ports haben immer einen undefinierten zustand, weil sie wie eine Antenne
wirken. Du solltest bei der Fehlersuche auch immer mit einem
Msg_Befehl arbeiten. Mit Msg kannst du zB sofort erkenne ob
du was misst oder ob du Schmarrn in der Ausgabe programmiert hast,
wie in deinem Fall.
Komma null ist auch unnötig.
GruÃ? Max

Dim wert1, wert2 As Single
Dim zeile1(10) As Char
Dim zeile2(10) As Char

Sub main()
   LCD_Init()
   LCD_ClearLCD()
   LCD_CursorOff()


   Do While (True)
      ADC_Set(ADC_VREF_VCC,0)
      wert1 = ADC_Read()
      wert1 = wert1 *5/1024
      Msg_WriteFloat(wert1)
      Msg_WriteText("  wert1")
      Msg_WriteChar(13)
      ADC_Set(ADC_VREF_VCC,1)
      wert2 = ADC_Read()
      wert2 = wert2 *5/1024
      Msg_WriteFloat(wert2)
      Msg_WriteText("  wert2")
      Msg_WriteChar(13)
      Ausgabe()
      AbsDelay(500)
   End While
End Sub

Sub Ausgabe()
Dim einheit(3) As Char
    zeile1=""
    zeile2=""
    einheit = " V"
    If wert1>4.99 Then
       zeile1=" HHHH"
    Else
       Str_WriteFloat(wert1,2,zeile1,0)
    End If

    If wert2>4.99 Then
       zeile2=" HHHH"
    Else
       Str_WriteFloat(wert2,2,zeile2,0)
    End If

    LCD_CursorPos(0x00)
    LCD_WriteText(zeile1)
    LCD_WriteText(einheit)
    LCD_CursorPos(0x40)
    LCD_WriteText(zeile2)
    LCD_WriteText(einheit)
End Sub


    Antwort schreiben


Antworten:

Re: Analog/Digital Wandler (von NOOBIE - 23.03.2014 18:16)
    Re: Analog/Digital Wandler (von Max - 25.03.2014 20:29)
        Re: Analog/Digital Wandler (von NOOBIE - 5.05.2014 11:37)
            Re: Analog/Digital Wandler (von Max - 5.05.2014 14:38)
                Re: Analog/Digital Wandler (von NOOBIE - 13.05.2014 15:40)
                    Re: Analog/Digital Wandler (von Max - 13.05.2014 18:18)
                       Re: Analog/Digital Wandler (von NOOBIE - 14.05.2014 15:51)
                          Re: Analog/Digital Wandler (von Max - 14.05.2014 21:44)
                             Re: Analog/Digital Wandler (von NOOBIE - 23.05.2014 18:07)
                                Re: Analog/Digital Wandler (von NOOBIE - 25.05.2014 18:35)