-         

Ergebnis 1 bis 3 von 3

Thema: Fehler bei Messung an Port A

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    119

    Fehler bei Messung an Port A

    Anzeige

    Hallo,

    ich habe das Testprogramm so abgewandelt das nur noch die Ausgabe von Port A gemacht wird, denn komischer Weise kann ich an Port A keine vernümpftige Spannung mehr messen, dh, ich bekomme Werte zwischen 1 und 5 Volt obwohl nix angeschlossen ist !!!

    hier ist mein Programm:
    Code:
    Declare Sub Batteriespannung()
    Declare Sub Showporta()
    
    $regfile = "m32def.dat"
    
    Dim I As Integer
    Dim N As Integer
    Dim Ton As Integer
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    
    Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
    
    Config Pina.7 = Input                                       'Für Tastenabfrage
    Porta.7 = 1                                                 'Pullup Widerstand ein
    
    
    Const Ref = 5.24 / 1023                                     'Für Batteriespannungsberechnung
    
    Dim Volt As Single
    
    Tccr1b = Tccr1b Or &H02                                     'Prescaler = 8
    
    I = 0
    Sound Portd.7 , 400 , 450                                   'BEEP
    Sound Portd.7 , 400 , 250                                   'BEEP
    Sound Portd.7 , 400 , 450                                   'BEEP
    Print
    Print "**** RN-Control 1.4 *****"
        Call Batteriespannung
    Do
       Call Showporta
       Waitms 1500
    Loop
    
    End
    
    'Diese Unterfunktion zeigt Bateriespannung an
    Sub Batteriespannung()
    Local W As Word
       Start Adc
       W = Getadc(6)
       Volt = W * Ref
       Volt = Volt * 5.2941
       Print "Die aktuelle Spannung beträgt: " ; Volt ; " Volt"
    'Zeigt Die Analogen Messwerte An Port A An
    End Sub
    
    Sub Showporta()
    Local Ws As Word
    
       Config Porta = Input
       For I = 0 To 5                                           ' Alle internen Pullup Widerständ ein,bis auf Batteriespannungsmessungsport
          Porta.i = 0
       Next I
    
       For I = 0 To 7                                           ' Alle Eingäne inkl.messen
          Start Adc
          Ws = Getadc(i)
    '     Ws = Getadc(2)
          Volt = Ws * Ref
          Print "Pin " ; I ; " ADC-Wert= " ; Ws ; " bei 5V REF waeren das " ; Volt ; " Volt"
       Next I
    End Sub

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    Du schreibst zwar in deinem Kommentar, in der Schleife unten, das die Pull-ups ein sind, gibts aber trotzdem 0 an, also keine Pull-ups !
    Deswegen könnte das ergebnis flattern.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    119
    habe das Problem entdeckt, es lag an meinem Compiler, nutze normalerweise Bascom 1.11.7.4 und habe es aus versehen in der DEMO von 1.11.7.7 versucht und dadurch haben sich die Fehler eingeschlichen!

Berechtigungen

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