Forum: Mikrocontroller und Digitale Elektronik Pic12F615 ärgert mich


von Steffen (Gast)


Lesenswert?

Irgendwie will das ganze Programm nicht so wie ich es will aber ich sehe 
den Fehler nicht und bekomme von euch vieleicht Hilfe..

Ich möchte eigentlich nur ein PWM-Signal erzeugen was mann einfach 
ändern kann an port 0 und 1 deshalb entschuldige ich mich schon mal für 
dei vielen nop's

        #include <P12f615.INC>

        ERRORLEVEL      -302

    __CONFIG    3DD5h

    BANKSEL   GPIO          ;
    CLRF     GPIO           ;Init GPIO

    BANKSEL   ANSEL         ;
    CLRF     ANSEL          ;alle digital acd aus

    MOVLW     b'00000000'   ;alles Ausgänge
    MOVWF     TRISIO        ;übernehmen

zwei
    bcf   GPIO,1
    bsf   GPIO,0
    nop    ;1
    nop    ;2
    nop    ;3
    nop    ;4
    nop    ;5
    nop    ;6
    nop    ;7
    nop    ;8
    nop    ;9
    nop    ;10
    nop    ;11
    nop    ;12
    nop    ;13
    nop    ;14
    nop    ;15
    nop    ;16
    bcf   GPIO,0
    bsf   GPIO,1
    nop    ;1
    nop    ;2
    nop    ;3
    nop    ;4
    nop    ;5
    nop    ;6
    nop    ;7
    nop    ;8
    nop    ;9
    nop    ;10
    nop    ;11
    nop    ;12
    nop    ;13
    nop    ;14
    goto   zwei

von Uwe N. (ulegan)


Lesenswert?

schreib mal vor deine Schleife noch ein:
    BANKSEL   GPIO          ;

sonst greifst du in der Schleife mit den GPIO-Zugriffen auf das 
TRISIO-Register zu. Das hat die gleiche Adresse wie GPIO, liegt aber in 
einer anderen Bank, nämlich in der gleichen wie ANSEL, die du zuletzt 
angewählt hast.

Uwe

von Steffen (Gast)


Lesenswert?

Danke hatte heute früh auch mich gefragt auf welcher Bank ich zum 
Schluss eigentlich war hatte dann
  bcf       STATUS, RP0
eingefügt und siehe da da passiert was :o)
Hab dein Methode auch ausprobiert und siehe sie geht auch

Danke

von Uwe N. (ulegan)


Lesenswert?

BANKSEL ist ein Makro und erzeugt in diesem Fall auch nur ein:
  bcf       STATUS, RP0

Uwe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.