Simulationsproblem mit MPLAB

Gast #859036
Lesenswert?

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
Gast #859042
Lesenswert?

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 .
Gast #860317
Lesenswert?

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

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