From 7ad4bcdd0560ae68192b0ec55ee285da83678697 Mon Sep 17 00:00:00 2001 From: Orell-Pieter Schwarzbach <2122623@stud.hs-mannheim.de> Date: Wed, 19 Apr 2023 11:23:10 +0200 Subject: [PATCH] Upload files to '' Arduino Code sending raw bin data without using von Neumann algorithm --- BIN_Daten_ausgabe.ino | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 BIN_Daten_ausgabe.ino diff --git a/BIN_Daten_ausgabe.ino b/BIN_Daten_ausgabe.ino new file mode 100644 index 0000000..c35c6d6 --- /dev/null +++ b/BIN_Daten_ausgabe.ino @@ -0,0 +1,33 @@ +const int adcPin = A0; // ADC-Pin +const int serialBaudRate = 115200; // Baudrate des seriellen Monitors +const float toggleDelay = 0.2; // Verzögerung zwischen dem Umschalten der Bits, in Mikrosekunden + +void setup() { + Serial.begin(serialBaudRate); // Starten des seriellen Monitors + analogReadResolution(12); + +} + +void loop() { + uint32_t buffer[8] = {0}; // Initialisierung des Puffer-Arrays mit Nullen + uint8_t bitCount = 0; // Anzahl der erzeugten Bits + + for (int i = 0; i < 8; i++) { + uint32_t randomValue = 0; // Initialisierung der zufälligen Zahl + + while (bitCount < 32) { + uint16_t adcValue = analogRead(adcPin); // Lesen des ADC-Werts + uint32_t newBit = adcValue & 0x01; // Extrahieren des LSB aus dem ADC-Wert + randomValue = (randomValue << 1) | newBit; // Hinzufügen des neuen Bits an das LSB + bitCount++; // Inkrementierung der Anzahl der erzeugten Bits + delay(toggleDelay); // Verzögerung + } + + buffer[i] = randomValue; // Speichern des zufälligen Werts im Puffer-Array + bitCount = 0; // Zurücksetzen der Anzahl der erzeugten Bits + } + + for (int i = 0; i < 8; i++) { + Serial.write((byte*)&buffer[i], sizeof(buffer[i])); // Ausgabe der erzeugten 32-Bit-Werte als Bitfolge + } +}