LPC, Problem mit IO / FastIO

OP #1992347
Lesenswert?

Hi, folgender Code sollte, egal ob FIO definiert ist oder nicht, das 
gleiche Ergebnis liefern, so versteh ich es zumindest.
1
//#define FIO
2
#ifdef FIO
3
  FIO0MASK= ~0x00200000;
4
  FIO0DIR= 0x00200000;
5
#else
6
  IODIR0 = 0x00200000;
7
#endif
8
  // endless loop to toggle the red  LED P0.21
9
  while (1)
10
  {
11
      {
12
      //  LED_ON;
13
        #ifdef FIO
14
          FIO0CLR = 0x00200000;
15
        #else
16
                 IOSET0= 0x00200000;
17
        #endif
18
        for (j = 0; j < 200000; j++ );
19

20
        //LED_OFF;
21
        #ifdef FIO
22
          FIO0SET = 0x00200000;
23
        #else
24
          IOCLR0= 0x00200000;
25
        #endif
26
        for (j = 0; j < 200000; j++ );
27
      }
28
  }

Jedoch, passiert bei definiertem FIO gar nichts.
An 2 weiteren Ports, 3 und 4 mit FastIO, habe ich noch ein LCD, welches 
Funktioniert. Nutze ich jedoch die normalen IO für die LED, und das LCD, 
geht die LED wiederum nicht. An den PINSEL Registern spiele ich nicht 
rum.

Was könnte ich übersehen haben?
#1992401
Lesenswert?

Du meinst ohne GPIOM Bit geht sowas nicht?
1
IOCLR0  = 0x00200000;
2
FIOSET2 = 0x00000002;

Habe ich noch nicht gemacht da ich nur FIO benutze.
Würde mich aber wundern wenn das nicht funktioniert.
Sobald das GPIOM Bit gesetzt ist lassen sich die ersten
beiden Ports nur mit den FIOxxx Registern ansprechen.
Aber das ist ja nochmal was anderes.

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