Moin an Alle! Ich habe ein PIC 16f877 auf ein PICDEM 2 PLUS DEMO Board. Mit dem Progrannieren habe ich jetzt eine Anfangsschwierigkeit. Denn in meinen kleinem C - Programm habe ich die "#include <16f877.h>" eingebunden. Beim compileren geht noch alles gut. Doch habe ich nicht mein Ergebnis bekommen. Mein Programm: #include <16f877> int main() { PORTD = 0xFF; return 0; } Nach meiner Logik müsste an den einzelnen PIN's jeweils 5 V anliegen, doch das tut es nicht!!! Warum? Habe ich einen gravierenden Schritt vergessen!? Grüße Taz
Hallo, PortD ist nach dem Start als Input geschaltet. IM TRISD Register das Port zuvor auf Output umschalten. MfG
Hey! Und wie schalte ich denn ein PORTD (zum Beispiel) als Ausgang? MfG
In Assembler geht das so: BSF STATUS,RP0 MOVLW B'00000000' MOVWF TRISD ;RD ports output BCF STATUS,RP0 Wie das in C aussieht musst Du ausprobieren.
Hey, also wird wird TRISD der Port D mit b00000000 belegt und die PIN's als Ausgang geschaltet. Dann sollte es in C eigendlich so aussehen: ... TRISD = 0x00; ... MfG Taz
Genau: 1. TRISD = 0x00; //alle Pins des D-Ports sind Outputs (0) 2. PORTD = 0xFF; //alle Output-Pins sind aktiviert 3. while(1); //damit der µC etwas zu tun hat.
Hi, Klappt irgendwie noch nicht? Habe die Headerdatei pic1687x.h genommen. Da die anderen 16f877.h sich beim compilieren nicht öffen liesen laut output in MPLAB. Mein CODE: #include <pic1687x.h> int main(void) { TRISD = 0x00; PORTD = 0x00; while(1) {} return 0; } MfG
Hi, habe ich vielleicht eine wichtige Zeile ausgelassen? Vielleicht könnte mir jemand sein erstes Test-Programm schicken wo ein Pin oder Port getestet wurde die läuft auf einem 16f877. Würde dann die C - Datei abgleichen und somit meinen Fehler vielleicht finden. MfG Taz
Ich habe zwar kein Ahnung vom PIC, aber: oben hast du PORTD = 0xFF; geschrieben. Nachdem man dir sagte, dass der Pin noch auf Output muss, hast du TRISD = 0x00; PORTD = 0x00 ; daraus gemacht und wunderst dich, dass die Pins auf LOW sind ...
Moin! Es lag nicht an den Port! Ich wusste, dass ich sie damit auf Low setze. So wollte ich es haben. Das Problem war die "#include" Anweisung. Hat sich also erledigt. Danke an Alle die mir geholfen haben. MfG Taz
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.