Forum: Mikrocontroller und Digitale Elektronik LPC Ports ?


von mgiaco (Gast)


Lesenswert?

Also bei den AVR´s wars einfacher finde ich. Oder gibts da noch was 
anderes? Wenn ich zum Beipsiel eine Funktion schreibne will welche mir 
ein data Byte setzt dann habe ich beim AVR einfach:
1
funtion(char data)
2
{
3
   PORTB = data;
4
}
geschrieben für zum Beispiel Port B und bei den ARM - LPC ?

So ?
1
void writeData (uint_8 data)
2
{
3
  IOSET1 = ((uint32_t)data<<LCD_BUS_PIN_0);
4
}
nein geht nicht weil:

Es gibt ja nur set und clr und wenn ich dann zum Beispiel schreibe

data(0xff) ==> write data 1
und dann
data(0x00) ==> write data 2 (passiert nichts ist auch klar)
ich muss mit
IOCLR1 = 0x00ff0000 schreiben um die Bits wieder zu löschen.

Na ja ein Port Out Register wäre einfacher.

Also ist das die einzige möglichkeit oder wie macht man das am besten?
1
void writeData (uint_8 data)
2
{
3
  IOCLR1 = (uint32_t)0xFF<<LCD_BUS_PIN_0); //zuerst alle löschen
4
  IOSET1 = ((uint32_t)data<<LCD_BUS_PIN_0); // dann schreiben
5
}

Ich brauch sowas für eine Displaytreiber

na dann
mgiaco

von Dominic R. (dominic)


Lesenswert?

Hallo,

schau dir mal die IOPIN Register an, damit sollte es möglich sein, Pins 
gleichzeitig zu setzen und zu löschen.

Neuere LPCs verfügen zudem noch über einen schnelleren Fast GPIO 
Registersatz.

Um welchen LPC geht es denn genau?

Gruss,

Dominic

von mgiaco (Gast)


Lesenswert?

@ dominic LPC2148

Werde das mit dem IOPIN ausprobieren. Dachte man kann darf das Register 
nur lesen.

Macht das sinn für ein Display Fast IO zu verwenden? Glaube nicht oder 
denn die Bremse ist sowiso das Display.


von mgiaco (Gast)


Lesenswert?

Okay im Datenblatt steht IOPIN (R/W) sorry. Aber ich dachte man sollte 
IOSET und IOCLR nehmen. Na ja werde das mal gleich probieren.

Danke.

von A.K. (Gast)


Lesenswert?

Bei den ersten LPCs konnte man das nur lesen, später kam die Möglichkeit 
hinzu, es auch schreiben zu können. Manual zum LPC2148 lesen.

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.