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) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum