Forum: Mikrocontroller und Digitale Elektronik PIC32 Port D Problem


von Thomas (Gast)


Lesenswert?

Hallo,

an meinem neuen 32Bit PIC32-Evalboard schaffe ich es nicht, den Port D 
vernünftig anzusteuern. Hier der Code:

void main()
  {
  SYSTEMConfigWaitStatesAndPB(80000000L);
  SYSTEMConfigPerformance(80000000L);
  CheKseg0CacheOn();
  mCheConfigure(CHECON | 0x30);
  mBMXDisableDRMWaitState();

  IEC0CLR = 0x03800000;
  SPI1CON = 0;
  SPI1BRG = 0;
  SPI1CON = 0x10008320;
      //IC2CON = 0x0000;
      //IC5CON = 0x0000;
  TRISA = 0x0000;
  TRISD = 0x0000;
      //_TRISD9 = 0;
      //_TRISD12 = 0;

  //PORTSetPinsDigitalOut(IOPORT_D, BIT_9);
  //PORTSetPinsDigitalOut(IOPORT_D, BIT_12);
  //AD1PCFG = 0xFFFF;
  while(1)
    {
  //  SPI1BUF = 'H';

    PORTD = 0x00;
    PORTD = 0xFF;

  //  PORTA = 0xFF;
  //  PORTA = 0x00;
    }

Interessanterweise funktioniert es bei folgendem Code:
        SPI1BUF = 'H';
  PORTD = 0x00;
  PORTD = 0xFF;
        PORTD = 0x00;
  PORTD = 0xFF;
  PORTA = 0xFF;
  PORTA = 0x00;

Wenn ich irgend was davon auskommentiere geht das Toggeln von Port D 
wieder nicht; Port A ist hingegen völlig problemlos.

Hat von euch schon jemand ein ähnliches Problem beobachtet oder habe ich 
ein peripheral nicht beachtet, dass auf Port D zugreift und deaktiviert 
werden muss?

  }
von Thomas (Gast)


Lesenswert?

Hat sich erledigt, das SPI-Modul benutzt den Pin an Port D für Slave 
Select ...
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
Noch kein Account? Hier anmelden.