Forum: Mikrocontroller und Digitale Elektronik ausgänge PORTA vom pic wollen nicht so recht in C


von Simon A. (moony) Benutzerseite


Angehängte Dateien:

Lesenswert?

hallo,
ich wollte gerade die ausgänge von meinem pic16f627 testen, portb 
funktioniert einwandfrei aber bei porta sind manche immer high und 
manche immer low. in assembler funktioniert es, kann also nicht an der 
hardware liegen.
habe schon verschiedenes an der konfiguration herumprobiert aber find 
nicht raus, an was es liegt.
vielleicht muss man einige ausgänge von analog auf digital umschalten? 
wenn ja, wie geht das? kann mir jemand helfen?
C-code ist angehängt (das programm sollte led's an porta-ausgängen 
ungefähr im sekundentakt an und ausschalten, was mit portb auch 
funktioniert).

von eProfi (Gast)


Lesenswert?

Wie sieht denn der vom Compiler generierte Code aus?

Kann sein, dass bestimmte Pins für andere Funktionen belegt sind (wie 
schon vermutet ADC, SPI, I2C, Programmierung oder sonstwas)?

Wie hast Du es in ASM gelöst?

von Simon A. (moony) Benutzerseite


Angehängte Dateien:

Lesenswert?

das .asm file ist angehängt.

könnte sein, dass für bestimmte pins (automatisch) andere funktionen 
zugewiesen werden, nur weiß ich nicht welche und wie man sie aus macht.
bei anderen pics gibt es z.b. die variable ADCON1 aber nicht beim 
pic16f627.

in assembler hat es gereicht porta auf output zu setzen:

MOVLW  B'00000000' ;alle RA sind ausgänge
MOVWF  TRISA
BCF  STATUS,RP0 ;Switch Back to reg. Bank 0
CLRF  PORTA

naja, ich werd mich wohl noch ein bisschen durchs datasheet wühlen 
müssen :)

von Simon A. (moony) Benutzerseite


Lesenswert?

ich hab es teilweise gelöst. mit setzen von CMCON=0x7 gehen zumindest 
manche der porta ausgänge. es hat auf jeden fall mit den 
comperator-eingängen zu tun.

von Steven (Gast)


Lesenswert?

Hallo,

RA4 ist Open Drain und RA5(MCLR) ist nur Eingang. Darauf fällt man sehr 
leicht rein. Vor allem RA4 bildet immer mal wieder Probleme in dieser 
Hinsicht.

von Simon A. (moony) Benutzerseite


Lesenswert?

ich hab nen großen fehler gemacht und habe die interne clock benutzt und 
MCLR deaktiviert. dadurch lässt sich der pic jetzt (mit meinem 
programmiergerät k8048) nicht mehr programmieren, falls es jemanden 
interessiert, hier ist es gut beschrieben: 
http://sprut.de/electronic/pic/fallen/fallen.html#intoscmclr

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.