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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.