Arduino UNO => Takt und serielle Daten erzeugen

OP #7892883
Lesenswert?
• ▲
▼

Hallo,

möchte mit Arduino UNO anhängende serielle Datenausgabe erzeugen. Wenn man mit 100kHz taktet braucht es keine Pause zwischen Datenbyte 1 und 2, da t(nxt) > 4ms erfüllt ist.

Meine Frage: wie realisiere ich obigen Takt ubd Datenausgabe möglichst simpel auf dem UNO (mit sketch). Sprich gibt es eine Bibliothek die genau das macht. I2C geht ja nicht, da diese Start und Stopsequenzen hat. Sind in meiner Anwendung immer 8 Bit ohne Start, Stop und Prüfbit.

Falls jemand wissen möchte wofpr ich das brauche, der kann im Unterforum "Platinen" unter "PLCC Adapter" nachsehen.

Grüße Marco

Angehängte Dateien:
#7892910
Lesenswert?
• ▲
▼

Das sieht mir nach einem Anwendungsfall für SPI aus. https://docs.arduino.cc/learn/communication/spi/

Alternativ kannst du es selbst programmieren, auf Basis direkter Zugriffe auf die Pins und Warteschleifen (delay). Man braucht nicht für jede Pillepalle eine Library.

Marco S. schrieb:

Mit Funktion Serial.print

Sicher nicht. Die Serial Klasse kann mur asynchrone Ausgabe ohne Taktsignal, ohne selbst definierbare Pausen und außerdem ist der einzige serielle Port gereits mit dem USB-UART belegt.

#7892975
Lesenswert?
• ▲
▼

Grundsätzlich kannst du SPI verwenden.

Falls deine Anwendung nicht "zeitkritisch" ist, kannst es auch selber mit nem PIN raustackten. Erinnert mich an mein LED Treiber IC von vor 2 Wochen.

1
void send(uint8_t addr_cmd, uint8_t *data, size_t length)
2
{
3
  digitalWrite(cs_pin, LOW);
4
  
5
  send_byte(addr_cmd);
6
  
7
  for (size_t i=0; i<length; i++)
8
    send_byte(data[i]);
9
  
10
  digitalWrite(cs_pin, HIGH);
11
}
12

13
void send_byte(uint8_t data)
14
{
15
  for (uint8_t i=0; i<8; i++)
16
  {
17
    digitalWrite(clk_pin, LOW);
18
    
19
    digitalWrite(data_pin, data & 1 ? HIGH : LOW);
20
    data >>= 1;
21
    
22
    digitalWrite(clk_pin, HIGH);
23
  }
24
}

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.