PIC12F675 A0/A1 Output schaltet immer aus

OP #1305503
Lesenswert?
• ▲
▼
Hallo zusammen,

wahrscheinlich ist das Thema hier schon x mal durch, ich krieg es 
trotzdem nicht hin...

Habe ein recht langes Programm, bis auf A0 und A1 machen auch alle Ports 
was sie sollen. Die schalten sich aus, so dass ich ne ungewollte PWM 
bekomme.

Jetzt habe ich ein Testprogramm geschrieben, um das ganze von vorn 
anzugehen:

Ich versuche, mit einem PIC12f675 einfach mal alle Ports (außer A3, I 
know...) auf 1 zu schalten. (interner RC)

Habe hier einen PCW PIC C Compiler, bin in assembler nich so firm...

Ich muss ja Komparator und Analog ausschalten. Da ich dem Compiler mit 
seinen Fuses nicht so ganz traue, hab ich das mal in c nachgeschrieben:

void main (){

GPIO &= 0x00;     // Alles aus
CMCON |= 0x07;    // Komparator off
STATUS |= 0x10;   // wechsel auf Bank 1
ANSEL = 0;        // Analog off
TRISIO = 0;       // alles Outputs
STATUS &= ~0x10;  // wieder auf Bank 0 wechseln

GPIO = 0xff;      // alle Ports an
}

leider tut sich da gar nix mehr...

Hab jemand eine Idee, was genau mit den beiden Ports los sein kann?

Grüße & Danke,
anton_elfi
Gast #1305649
Lesenswert?
• ▲
▼
Kennt dein Compiler kein RP0 ?
RP0 ist 0x20 , damit wechselst du dann zu bank1
ein
STATUS|=0x10 ist in wirklichkeit eine NOP, da du dieses Bit nicht 
schreiben darfst, es ist nur Read Only, zumindest in der Praxis.
OP #1306749
Lesenswert?
• ▲
▼
Hallo zusammen,

herzlichen Dank und ein fettes Lob an dieses Forum, mit so vielen 
Antworten hatte ich nicht gerechnet :-)

Freitag Nacht war es dann doch etwas spät, ich konnte wohl nicht mehr 
zählen...

Natürlich muss Bit 5 vom Status Register auf 1 gesetzt werden, um auf 
Bank1 zu kommen. (also STATUS |= 0x20;)

Damit ging es dann!

Na ja, der Compiler lässt etwas zu wünschen übrig, ich dachte der 
erledigt diese Dinge in seinem Setup-Wizzard.... Also doch lieber alles 
selber machen bzw. kontrollieren!

Nochmal besten Dank & viele Grüße!
anton_elfi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren