INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Byte an acht Pins legen
03.01.2014, 21:26
Beitrag #1
Byte an acht Pins legen
Hallo liebe AduinoForum.de Mitglieder,
ich bin recht neu in Sachen Arduino-Programmierung.
Da ich über 'Blink' hinaus bin, möchte ich mich an etwas größeres wagen.
Um einen SRAM zu befüllen möchte ich an acht Pins ein Byte ausgeben.
Entweder ich bin blind oder ich habe bislang mit den falschen Begriffen gesucht?
Ich kann einfach keine Anleitung für mein Problem finden.
Ich bin über eine recht dreckige Methode gestolpert:
Code:
int i;

void setup(){
DDRD = DDRD | B11111111;
}

void loop(){
for (i=0; i<256; i++){

PORTD = i;
delay(250);
   }
}

Leider fehlt hierbei das sechste Bit (2^6). Auch ist empfohlen worden nicht so mit den Registern zu verfahren.
Was ich benötige sind ein paar Zeilen mit denen ich mit acht Pins ein Byte ausgeben kann.
Oder sollte ich mich davon verabschieden und alles seriell über ein Schieberegister erledigen?

Danke schon mal im vorab -
derGistA
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2014, 11:41 (Dieser Beitrag wurde zuletzt bearbeitet: 04.01.2014 12:08 von rkuehle.)
Beitrag #2
RE: Byte an acht Pins legen
Moin derGistA,

wenn ich es richtig verstanden habe werden durch
Code:
DDRD = DDRD | B11111111;
die Ports 0-7 auf Output gesetzt. Soweit, so gut.
Allerdings kann über die Konstante PORTD diesen Ausgängen auch nur 0 oder 1 zugewiesen werden. Also sollte anstatt der For-Schleife ein
Code:
PORTD = PORTD | B11111111;
ausreichen.

Ich würde soweiso sehr aufpassen, da die Ports 0 und 1 für die serielle Kommunkationn zuständig sind. Du verbaust dir damit ziemlich jede Chance mal was auf dem seriellen Monitor zwecks Debugging auszugeben.

Grüße Ricardo

EDIT: ich würde sowieso eher min PinMode und digitalWrite arbeiten. Das macht den Code übersichtlicher

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2014, 14:28
Beitrag #3
RE: Byte an acht Pins legen
DDRD = DDRD | B11111111;
Hier wird der gesamte Port D als Ausgang festgelegt.

PORTD = i
Alle 8 PortD-Ausgänge werden entsprechend der Binärzahl auf 0 oder 1 geschaltet.

Beim Arduino Uno entspricht
D0(RX) PIND0
D1(TX) PIND1
D2 PIND2
D3 PIND3
D4 PIND4
D5 PIND5
D6 PIND6
D7 PIND7

Bei diesem C-Code - kein Arduino Code!!! - gibt es bei D0 und D1 Probleme mit der Seriellen Schnittstelle.

LG Georg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2014, 16:18
Beitrag #4
RE: Byte an acht Pins legen
Danke, danke!

Aber ich bin heute morgen nach Conrad gerannt und habe mir eine Hand voll 74HC595 (8 Bit Schieberegister) geholt.
Ist wohl doch die bessere Methode... Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Byte Shiften und Bit abfragen.... comfan 4 205 02.09.2016 20:30
Letzter Beitrag: comfan
  RFID-Reader an Analog Pins inski 9 656 02.03.2016 12:43
Letzter Beitrag: ArdHolger
  Communication-Pins am Arduino Mega 2560 Rudi 9 3.222 12.02.2016 07:54
Letzter Beitrag: Rudi
  Pins setzen und auslesen im Yun mit FreeBasic arduinofan 3 556 08.12.2015 15:03
Letzter Beitrag: manau21
  I2C mehr als 32-Byte empfangen chhec 10 779 16.11.2015 11:26
Letzter Beitrag: chhec
  Per Arduino zwei Pins verbinden? Leseratte10 7 2.099 10.04.2015 22:02
Letzter Beitrag: Bitklopfer
  Daten Byte,Word,Int ans EE-Prom Senden HTO 4 1.641 15.12.2014 00:02
Letzter Beitrag: HTO
  Arduino mit mehr Pins Cray-1 1 1.010 08.09.2014 11:37
Letzter Beitrag: SkobyMobil
  Problem mit SDA/SCL Pins Tropaion 6 1.441 24.06.2014 18:32
Letzter Beitrag: Tropaion
  LCD Display mit nur fünf Pins Eike 12 2.068 03.06.2014 18:08
Letzter Beitrag: Eike

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste