first commit
This commit is contained in:
commit
cfccfab7f4
166
NoiseRaw.c
Normal file
166
NoiseRaw.c
Normal file
|
@ -0,0 +1,166 @@
|
|||
|
||||
/*
|
||||
------------------------------------------------------------------------
|
||||
File : NoiseRaw.c
|
||||
Project : Gentrop
|
||||
Version : 1.0.0
|
||||
Author : GioDim
|
||||
Comment : Arduino sketch
|
||||
History :
|
||||
24.02.2018 - Release 1.0.0
|
||||
------------------------------------------------------------------------
|
||||
Copyleft 2018 GioDim <giodim@autistici.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
MA 02110-1301, USA.
|
||||
------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
------------------------------------------------------------------------
|
||||
Define
|
||||
------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
# define NOISE_PIN 7
|
||||
# define BUF_LEN 256
|
||||
# define DELAY 2
|
||||
# define BAUD_RATE 115200
|
||||
# define NUM_BITS 8
|
||||
|
||||
# define FIRST_BIT 0
|
||||
# define SECOND_BIT 1
|
||||
|
||||
/*
|
||||
------------------------------------------------------------------------
|
||||
Global
|
||||
------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
Status = FIRST_BIT,
|
||||
Noise = 0,
|
||||
Noise_A = 0,
|
||||
Noise_B = 0,
|
||||
Bits = 0,
|
||||
Line = 0;
|
||||
|
||||
uint8_t
|
||||
Result = 0,
|
||||
Buf [BUF_LEN];
|
||||
|
||||
/*
|
||||
------------------------------------------------------------------------
|
||||
Function : setup
|
||||
Input :
|
||||
Output :
|
||||
Comment :
|
||||
------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void setup ()
|
||||
{
|
||||
|
||||
pinMode (NOISE_PIN, INPUT);
|
||||
|
||||
Serial.begin (BAUD_RATE);
|
||||
|
||||
for (int i = 0; i < BUF_LEN; i++)
|
||||
Buf [i] = 0;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
------------------------------------------------------------------------
|
||||
Function : loop
|
||||
Input :
|
||||
Output :
|
||||
Comment :
|
||||
------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void loop ()
|
||||
{
|
||||
|
||||
uint8_t
|
||||
pause = 0;
|
||||
int
|
||||
i = 0,
|
||||
j = 0;
|
||||
|
||||
// Read noise bit
|
||||
|
||||
Noise = digitalRead (NOISE_PIN);
|
||||
|
||||
if (Status == FIRST_BIT)
|
||||
{
|
||||
|
||||
// First bit
|
||||
|
||||
Noise_A = Noise;
|
||||
Status = SECOND_BIT;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
// Second bit
|
||||
|
||||
Noise_B = Noise;
|
||||
Status = FIRST_BIT;
|
||||
|
||||
// Skip if bits are equal
|
||||
|
||||
if (Noise_A != Noise_B)
|
||||
{
|
||||
|
||||
// Store bit in byte
|
||||
|
||||
Result <<= 1;
|
||||
Result |= Noise_A;
|
||||
|
||||
if (++Bits == NUM_BITS)
|
||||
{
|
||||
|
||||
// Store byte in buffer
|
||||
|
||||
Buf [Line++] = Result;
|
||||
|
||||
if (Line == BUF_LEN)
|
||||
{
|
||||
|
||||
// Send buffer
|
||||
|
||||
Serial.write (Buf, BUF_LEN);
|
||||
Line = 0;
|
||||
|
||||
}
|
||||
|
||||
Result = 0;
|
||||
Bits = 0;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Delay loops
|
||||
|
||||
for (i = 0; i < DELAY; i++)
|
||||
for (j = 0; j < DELAY; j++)
|
||||
pause++;
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user