Hallo zusammen, hab da ein Problem mit der Entwicklungsumgebung von Microchip. Die PIC´s sind noch komplettes Neuland für mich und nun wollte ich mal anfangen zu dem PIC18F4320 ein kleines Programm zu schreiben und dieses dann anschließend mit MPLAB zu simulieren. Zunächst wollte ich einfach wie im "MPLAB C18 Getting Started" Manual beschrieben das Beispielprogramm 2 ausprobieren, in dem einige LED´s angesteuert werden. Hier der Code vom Manual: #include <p18cxxx.h> #pragma config WDT = OFF void main (void) { /* Make all bits on the Port B (LEDs) output bits. * If bit is cleared, then the bit is an output bit. */ TRISB = 0; /* Reset the LEDs */ PORTB = 0; /* Light the LEDs */ PORTB = 0x5A; while (1) ; } Über das Watch-Window kann man nun den PORTB beobachten. Nur musste ich feststellen, dass die gewünschte 0x5A nicht übernommen wurde, sondern lediglich eine 0x40. Woran kann das liegen? Alle Portpins von PORTB wurden über TRISB=0 zum Ausgängen konfiguriert und alle Portpins von PORTB sind laut Manual I/O Pins. Bin ratlos und hoffe, das mit jemand helfen kann. Danke schon mal im Voraus. mfg Paul
Hi Paul, ich hab das getting started Tutorial neulich auch durchgearbeitet. Bei mit hat alles geklappt. Hast du die neuste MPLAB Verion? Hast du auch alle Anweisungen im Tutorial befolgt?
Hi max. ja, ich hab alle Anweisungen im Tutorial durchgearbeitet. Die einzigste Änderung, die ich vorgenommen habe ist, dass ich statt des PIC18F452 (der im Manual verwendet wird) den PIC18f4320 (da ich mit diesem künftig arbeiten werde) genommen hab. Sonst hab ich alles so gemacht, wie im Manual beschrieben. Theoretisch müsste das ja funktionieren. (zumindest laut User-Manual) MPLAB Version hab ich V 8.00 .
Bei vielen PIC18 mit 4-stellger Typnummer sind einge der Port-B Pins beim Start als Analogeingänge geschaltet. Das Steuerregister zum Abschalten ist eines der ADCONs, weiss aber nicht genau welches.
such mal im datenblatt nach ANSEL und/oder ANSELH dort kannst du die analogeingänge des PIC zu normalen IO-Pins umschalten. is zumindest bei den 16ern so.
Hi, bin der Sache noch mal nachgegangen und hab ein bisschen rumprobiert. Hab im Header und im PIC18f4320 nach ANSEL und ANSELH gesucht, bin aber nicht fündig geworden. Die gibt es anscheinend nur bei der 16ner Serie. Bei den ADCON´s bin ich fündig geworden. Nun hab ich ADCON0 und ADCON1 wie folgt konfiguriert:
1 | ADCON0=0x00; //Interner A/D Wandler ausgeschalten mit Bit0=0 |
2 | ADCON1=0x3F; //3 = Verwendung von Referenzspannung |
3 | //F = Alle Portpins auf Digital I/O,
|
Nun funktionierts mit dem Simulieren. Danke an alle für die schnelle Hilfe. Habt mir echt weiter geholfen. :) Gruß Paul
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.