mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC, Problem mit IO / FastIO


Autor: Jens B. (sio2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, folgender Code sollte, egal ob FIO definiert ist oder nicht, das 
gleiche Ergebnis liefern, so versteh ich es zumindest.
//#define FIO
#ifdef FIO
  FIO0MASK= ~0x00200000;
  FIO0DIR= 0x00200000;
#else
  IODIR0 = 0x00200000;
#endif
  // endless loop to toggle the red  LED P0.21
  while (1)
  {
      {
      //  LED_ON;
        #ifdef FIO
          FIO0CLR = 0x00200000;
        #else
                 IOSET0= 0x00200000;
        #endif
        for (j = 0; j < 200000; j++ );

        //LED_OFF;
        #ifdef FIO
          FIO0SET = 0x00200000;
        #else
          IOCLR0= 0x00200000;
        #endif
        for (j = 0; j < 200000; j++ );
      }
  }

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?

Autor: Michael G. (let)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist wohl das "GPIOM" Bit im SCS Register nicht gesetzt.
Dann arbeiten Ports 0 und 1 im alten IO Modus der frühen LPC21xx.
Ports 2, 3 und 4 kennen nur FIO.

Probiere es mal damit:
SCS |= (1<<0);

 - Michael

Autor: Jens B. (sio2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, jetzt gehts.
Aber warum hat der ein Problem mit Port0 als normal, und die anderen als 
FIO?

Autor: Michael G. (let)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du meinst ohne GPIOM Bit geht sowas nicht?
IOCLR0  = 0x00200000;
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.

Autor: Jens B. (sio2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, danach lief wieder nix, ich hab nur die ports Konfiguriert, Port0 
normal und die anderen Fast. Und dann ging die LED auch wieder nich. 
Aber auch das LCD wollte nicht mehr.
Aber ich mache jetzt alles mit FIO. Alles komisch ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.