arduino: port byteweise lesen

OP #3320371
Lesenswert?

Hallo,

ich möchte gerne bei jedem loop()-Durchlauf 32 Portleitungen auf einmal 
einlesen.
Nun will ich nicht 32 Mal ...

val = digitalRead(inPin);

aufrufen. Ich dachte da eher an 4 Zugriffe a 8-Bit.
Nirgendwo in den Beispielen finde ich eine Funktion, mit der ich direkt 
auf einen 8 Bit Port zugreifen kann.
Gibt es das gar nicht? Oder bin ich nur zu doof zum Suchen?

Helft mir doch bitte mal auf die Sprünge :-)
(Firma: privatfrickler.de) #3320404
Lesenswert?

Hallo,

markus cano schrieb:

> Gibt es das gar nicht? Oder bin ich nur zu doof zum Suchen?

die zweite Option trifft zu.

Tipp für die nächste Suche: Alle AVR-GCC Operationen
funktionieren exakt 1:1 ohne irgendeine Änderung auch
im Arduino IDE.

Versuch es zum Beispiel mit google: avr gcc read port

Schon der erste Treffer passt.

Ansonsten bin ich mir fast sicher, dass es in jedem Datenblatt
zu den entsprechenden µC ein geeignetes Code-Beispiel gibt!

Vlg
 Timm
Gast #3320549
Lesenswert?

Dieser Thread ist ein Paradebeispiel für die didaktische Untauglichkeit 
des Arduino Systems.

Nichts gegen die Hardware, aber die Software lenkt eher von den Basics 
ab, anstatt sie zu lehren.

Ich kann nur dringend empfehlen, nicht mit Arduino einzusteigen!
Gast #3320687
Lesenswert?

markus cano schrieb:
> Sehr gutes Einsteigersystem !!! Klasse gemacht !!!

Das Problem ist, dass das Arduino System die ganze Direktheit eines µC, 
hinter einer glatt polierten Oberfläche verbirgt. Sobald man den 
Arduino-Weg verläßt, steht man doof da und muss sich nicht nur in die 
Register des jeweiligen Controllers reinfummeln, sondern auch noch die 
ganze Arduino-Maskerade durchdringen.
Wenn auf einem 84MHz Prozessor (Arduino Due) das simple Setzen eines 
Pins etliche µs dauert, finde ich das arg übertrieben.
Gast #3320750
Lesenswert?

Stefan schrieb:
> Dieser Thread ist ein Paradebeispiel für die didaktische Untauglichkeit
> des Arduino Systems.
>
> Nichts gegen die Hardware, aber die Software lenkt eher von den Basics
> ab, anstatt sie zu lehren.
>
> Ich kann nur dringend empfehlen, nicht mit Arduino einzusteigen!

Volle Zustimmung!

Allein schon dieser geistige Dünnpfiff, dass man für das lesen eines IOs 
eine extra Funktion braucht, sagt doch schon alles. Da wird eine gut 
verständliche Zeile in C durch irgendeine merkwürdige Funktion ersetzt.


Ach? Eine Arduino Funktion gibt es nicht für das was wir machen wollen? 
Na dann sind wir wohl aufgeschmissen, wenn wir nichtmal nen Port auf 
einmal einlesen können... Mit nem zusätzlichen Shield kann man das 
Problem aber leider auch nicht lösen.
Gast #4289623
Lesenswert?

Stefan schrieb:
> Dieser Thread ist ein Paradebeispiel für die didaktische
> Untauglichkeit
> des Arduino Systems.
>
> Nichts gegen die Hardware, aber die Software lenkt eher von den Basics
> ab, anstatt sie zu lehren.
>
> Ich kann nur dringend empfehlen, nicht mit Arduino einzusteigen!

sarkasmusan
genau! Und das gleiche gilt für C und überhaupt alle 
Programmiersprachen. Wer es richtig lernen will, der nimmt 
ausschließlich Assembler!
sarkasmusaus

Arduino hat genauso seine Berechtigung wie alle anderen Sprachen / IDE's 
auch. Arduino pauschal zu disqualifizieren ist genauso falsch wie zu 
sagen, alles muss in Assembler geschrieben warden und jeder der es 
anders macht ist ein Weichei.

Genau die gleiche Frage hätte auch von einen gcc Einsteiger kommen 
können ... dann auch da muss man den Portzugriff erst mal lernen.

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