-
        

Ergebnis 1 bis 4 von 4

Thema: Interne Pull-Up beim PIC (12F675) - WIE einrichten?

  1. #1

    Interne Pull-Up beim PIC (12F675) - WIE einrichten?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo und dies ist auch mein 1. Beitrag.

    Ich habe mit PICs bereits ein wenig herumgespielt und die eine oder andere Schaltung damit realisiert.
    Ich programmiere in Assembler, um die PICs besser kennenzulernen, auch wenns zeitaufwändig ist.
    Allerdings immer auf einem sehr einfachen Niveau, ich erarbeite mir noch Grundlagen.
    Wie z.B.:

    Ich möchte die internen Pull-UP-Wiederstände an GPIO3&4 nutzen.


    ; Initialisierung des Controllers

    Zeile 1 bsf STATUS,RP0 ; Auswahl Bank 1
    Zeile 2 call 0x3FF ; Laden des Kalibrierungswertes aus der letzten Speicherstelle
    Zeile 3 movwf OSCCAL ; Neuladen der Kalibrierungswerte für den internen Takt

    Zeile 4 movlw B'00111000' ; 3,4,5 = Eingang 0,1,2 = Ausgang
    Zeile 5 movwf TRISIO ; Schieben des geladenen Wertes in das Register TRISIO
    Zeile 6 CLRF ANSEL ; Deaktivieren der A/D-Wandler


    Zeile 7 bcf OPTION_REG, 7 ; pull-up master Ermöglicht Pull-Ups zu schalten

    Zeile 8 movlw B'00110000' ; Bei GPIO4&5 int. Pull-Ups zuschalten
    Zeile 9 movwf WPU ; WPU = WEAK PULL UP Register

    Zeile 10 bcf STATUS,RP0 ; Auswahl Bank 0
    Zeile 10 clrf GPIO ; Löschen aller Ausgänge
    Zeile 11 clrf INTCON ; Abschalten aller Interrupts und Löschen der Flags




    Das Programm als Ganzes läuft.
    Ziehe ich (mit einem Schalter) GPIO3 (hat einen externen Pull-Up) auf "0", dann funktioniert die Schaltung wie gewünscht.

    Zeile 7, 8 und 9 sind die entscheidenden, neuen Befehle.
    Damit soll es möglich sein, wenn GPIO4 oder 5 auf "0" gezogen werden, dass das Programm so weiterarbeitet, als wenn GPIO3 auf "0" gezogen werde.

    Mit GPIO3 gehts, mit GPIO4 oder 5 nicht.

    Woran liegts?

    Die Eingangsabfrage sieht übrigens so aus:


    HAUPT
    btfss GPIO,3 ; Abfragen des Einganges GPIO3, ob Taster gedrückt wird
    goto HandyLöschen ; Wenn Taste gedrückt, springe zur Marke "HandyLöschen"

    btfss GPIO,4 ; Abfragen des Einganges GPIO3, ob Taster gedrückt wird
    goto HandyLöschen ; Wenn Taste gedrückt, springe zur Marke "HandyLöschen"

    btfss GPIO,5 ; Abfragen des Einganges GPIO3, ob Taster gedrückt wird
    goto HandyLöschen ; Wenn Taste gedrückt, springe zur Marke "HandyLöschen"


    Nein ; Wenn nicht gedrückt, dann von Abfrage von vorne
    goto HAUPT ; Und wieder von vorne!







    Bis dann,

    Peter W.

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Leider konnte ich mich anhand deiner fragmentarischer Beschreibung die Abläufe deiner Programme nicht vorstellen um dir helfen zu können. Bitte, wenn möglich, poste nur das ganze Programm, das beim Ausführen Probleme macht. Die interne pull-ups sind in Zeile 7 richtig eingerichtet.

    Wahrscheinlich geht´s dir um einlesen der Pins GPIO.

    MfG

  3. #3

    Gelöst. PullUp sind korrekt eingerichtet.

    Nein, es ging nicht um das Einlesen. GPIO3 (Eingang mit "echtem" PullUp-Widerstand) funktioniert, die beiden zusätzlichen Eingänge 4&5 hatten dagegen nicht funktioniert.

    Ich habe das nochmal an einem Minimalstprogramm getestet und es geht.
    Auf was es mir ankam war "wie sind PullUps richtig eingerichtet?" ist gelöst.

    Und siehe da, nochmal eingelesen, auf einmal funktioniert auch das grosse Programm.

    Eventuell ein unbemerkter, wiederkehrender Fehler/Handhabung beim PIC-Brennen. Keine Ahnung.

    Danke für das draufschauen,

    Peter

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Es passiert bei mir manchmal auch, dass in meinen Gedanken in eine endlose Schleife reinfalle und blind bin...

    Es freut mich sehr, dass es jetzt richtig funktioniert.

    Weiter so, viel Spass !

    MfG

Berechtigungen

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