- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 4 von 4

Thema: Mehrere (unabhängige) ADC-Eingänge am 16F876 benutzen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    20.02.2009
    Beiträge
    11

    Mehrere (unabhängige) ADC-Eingänge am 16F876 benutzen?

    Hallo, Ihr Assembler-Experten da draußen - könnt Ihr mir helfen?
    Bin blutiger PIC-Anfänger und komme hier nicht weiter. Ich will mit einem 16F876 3 unabhängige Analogspannungen über ADC auswerten und u.a. ein PWM-Signal ausgeben. Habe das ADC-PWM-Beispiel von sprut (so gut ich konnte) für erstmal 2 ADC-Eingänge modifiziert, wobei ich zu Testzwecken einen Wert nach PORTB und den anderen an den PWM-Ausgang ausgebe. Ich hätte gerne, dass beide Werte unabhängig voneinander wären, aber das sind sie nicht! Ich klemme einen ADC an Masse, den anderen an eine variable Spannung - und sowohl PORTB als auch der PWM ändern sich!
    Könnte sich mal bitte jemand den Code im Anhang ansehen? Wäre echt super. Ich bin am Verzweifeln. Halte auch ein (vorsichtiges) Kopfwaschen aus.

    (Variable time -> PORTB, Variable bright -> PWM)
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    Moin,
    Ich habe dein File mal eben im Simulator von MPLAB angesehen, das ist sehr seltsam, denn dort funktioniert dein Code eigentlich. Ich habe brakepoints an den Punkten gesetzt, wo die Variablen zugegriffen werden, d.h. wenn das AD-Ergebnis vorliegt, hab dann Werte in ADRESH geschrieben und diese wurden auch richtig an bright und time, und danach auch richtig an CCPR1L und PORTB übergeben.

    Du versuchst das direkt in ner fertigen Schaltung oder? Schonmal geprüft, ob vielleicht eine Verbindung zwischen den Pins exisitiert, ne kleine Brücke aus nem Spritzer Zinn oder Stück Litze? Ein bischen Schwankung ist bei nem AD-Wandler normal, aber eigentlich sollte es auf jeden Fall auf das niedrigste Bit genaus ein.
    Hast du einen Schaltplan, wenn du es in Hardware testest?
    In welchem Wertebereich ändern sich die Ausgangswerte? Wie lässt du sie dir anzeigen?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    20.02.2009
    Beiträge
    11

    Problem gelöst!

    Hallo the_Ghost666,
    vielen Dank für Deine Mühe. Habe gerade das Problem gelöst. Typischer Anfängerfehler (denke ich) - nach dem Schalten der Eingänge braucht der ADC etwas Zeit, um wieder loslegen zu können.

    Nach den 3 ADCHSs ein 1ms Päuschen, und schon klappt's.

    Trotzdem nochmal vielen Dank. Gut zu wissen, dass man nicht allein im Regen steht mit der modernen Technik.

    Nur der Vollständigkeit halber:

    - Benutze "Hardware-Testschaltung" auf Steckboard 1K2V (Reichelt)
    - Eingangsspannungen kommen von Potis - "Enden" an VDD und VSS
    - Anzeigen über 1k Widerstände und low-current-LED (Reihenschaltung, klar)
    - Takt von 4-Pin 4Mhz-Quarz-Oszillator

    Die endgültige Schaltung wird natürlich klassisch verlötet.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    Achso, du hast nur einmal bis 256 gezählt, also vielleicht 500 Befehle pause bei 4MHz.
    Der Nachteil am Simulator ist natürlich, dass man sowas nicht unbedingt sieht. Aber der grundlegende Algorithmus klappt, sehr gut!

Berechtigungen

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

LiFePO4 Speicher Test