LPC2129 Programmierprobleme

Gast #327779
Lesenswert?

Hi,
ich arbeite seit kurzem mit dem LPC2129 unter WinARM. Dabei haben sich
bei mir einige Fragen aufgetan.

1)
Warum mäkelt der Compiler Deklarationen, die so aussehen
1
int test(unsigned char &c);
an? (Der Fehler ist das '&'-Zeichen)

Verwende ich stattdessen
1
int test(unsigned char* c);
Ist alles OK, die Verwendung allerdings leider eine Andere ;-)

2)
Irgendwie scheine ich eine Denkblokade mit den IO's zu haben.
Wie kann ich ein ganzes Byte, oder mehr gleichzeitig auf die IO-Ports
legen? Beim AVR ging das in etwa so:
1
PORTA |= 0xFF;
Das Gleiche stellt sich mir natürlich auch beim Einlesen.

3)
Kennt jemand ein Tutorial, in dem beschrieben wird, wie man mit den
Ext-Interrupts umgehen muss? Die Demos, die dem WinARM beiliegen,
lassen sich hierzu leider nicht sonderlich aus.

Freundlichen Gruss
Michael S
Gast #327780
Lesenswert?

"int test(unsigned char &c);"

Das ist ja auch kein C sondern C++ und muss folglich als C++ übersetzt
werden.

"Wie kann ich ein ganzes Byte, oder mehr gleichzeitig auf die
IO-Ports
legen?"

In 2 Schritten. Beispielsweise erst die zu setzenden Bits setzen, dann
die zu löschenden Bits löschen.

Grund für diese zunächst irritierende Methode:
- "port |= value" ist uf ARMs eher ineffizent.
- Die Ports sind 32bit breit. Interrupt-feste Modifikation von Portpins
ist kaum anders möglich.

Lesen: wo ist das Problem?

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