Orell-Pieter Schwarzbach 2023-04-19 11:28:45 +02:00
commit 605e592f3d
10 changed files with 33 additions and 7 deletions

View File

@ -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
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long