- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: Eingänge einlesen (AND)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.03.2008
    Beiträge
    64

    Eingänge einlesen (AND)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo miteinander,

    Hab gestern ein kleines Programm geschrieben, leider will das Ganze nicht funktionieren ( wer hätte das gedacht )

    Ich programmiere in C und der Controller ist ein PIC16F690 (vom PICKIT2)

    Das Programm ist glaub ich ziemlich selbsterklärend:
    Code:
    #include <pic.h>    
    void main(void)
    {
      TRISC = 0b00000000;
      TRISA = 0b11111111;
     
      for( ;; ) 
      {
        if
        (
          PORTA == 3)
        {
          PORTC = 1;
        }
        else
        {
          PORTC = 2;
        }
      }   // for( ;; )
    }
    Nun die zweite Led an PORTC leuchtet immer. Es scheint als ob die Eingänge nicht richtig eingelesen werden.

    Kann es daran liegen, dass man den Port von AD zu I/O umschalten muss.
    ADCON0= 00000000 so irgendwas?

    Die Schalter schalten die Eingänge immer zwischen Vdd und Vss.

    Bin um jeden Rat dankbar

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Hallo sky2,

    ich kenn mich mit PICs nicht aus, aber von AVRs her kenn ich das so, dass das PORTX-Register nur für die Ausgabe zuständig ist und es für das Abfragen von Zuständen ein anderes Register gebt (PINX bei AVRs). Vielleicht ist ja bei PICs ähnlich.

    MfG Mark

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    16.03.2007
    Alter
    36
    Beiträge
    58
    Ich hab mir das Datenblatt jetzt nicht angeschaut, aber ja du musst die Analogeingänge auf Digital umschalten.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    02.03.2008
    Beiträge
    64
    Muss ich alle Eingänge einzeln umschalten?:
    ADCON0 = 00000000
    ADCON0 = 00000100
    ADCON0 = 00001100

    Hab schon etwas rumprobiert und im Datenblatt gelesen und und und...
    Ach ja, ich hab die HI-TECH-Software mit MPLAB.

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    if (PORTA == 3)

    klappt nur, wenn wirklich genau 0b00000011 an dem Port anliegt.

    Ist das auch so gemeint ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    02.03.2008
    Beiträge
    64
    Ja, die LED soll nur leuchten wenn an den Eingängen RAO und RA1 ein HIGH und an den anderen ein LOW ist.

    Mier ist aber gerade aufgefallen, dass RA3 das Reset ist und dies NICHT auf LOW darf!

    Werde die Eingänge mal auf den PORTB wechseln.

    Beim umschalten des PORTs brauch ich aber trotzdem noch etwas Hilfe

Berechtigungen

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

12V Akku bauen