mirror of
https://github.com/hak5darren/wifipineapple-wiki.git
synced 2025-10-29 16:59:29 +00:00
Update of code for the SPI testing
This commit is contained in:
parent
a52eef451a
commit
6056727ac1
@ -36,8 +36,72 @@ The easiest way to program the HDK is via an Arduino. This allows you to use the
|
||||
|
||||
### Example program
|
||||
|
||||
```C
|
||||
You can obtain the original of this code from here: https://gist.github.com/chrismeyersfsu/3317769
|
||||
|
||||
```C
|
||||
// Written by Nick Gammon
|
||||
// February 2011
|
||||
/**
|
||||
* Send arbitrary number of bits at whatever clock rate (tested at 500 KHZ and 500 HZ).
|
||||
* This script will capture the SPI bytes, when a '\n' is recieved it will then output
|
||||
* the captured byte stream via the serial.
|
||||
*/
|
||||
|
||||
#include <SPI.h>
|
||||
|
||||
char buf [100];
|
||||
volatile byte pos;
|
||||
volatile boolean process_it;
|
||||
|
||||
void setup (void)
|
||||
{
|
||||
Serial.begin (115200); // debugging
|
||||
|
||||
// have to send on master in, *slave out*
|
||||
pinMode(MISO, OUTPUT);
|
||||
|
||||
// turn on SPI in slave mode
|
||||
SPCR |= _BV(SPE);
|
||||
|
||||
// get ready for an interrupt
|
||||
pos = 0; // buffer empty
|
||||
process_it = false;
|
||||
|
||||
// now turn on interrupts
|
||||
SPI.attachInterrupt();
|
||||
|
||||
} // end of setup
|
||||
|
||||
|
||||
// SPI interrupt routine
|
||||
ISR (SPI_STC_vect)
|
||||
{
|
||||
byte c = SPDR; // grab byte from SPI Data Register
|
||||
|
||||
// add to buffer if room
|
||||
if (pos < sizeof buf)
|
||||
{
|
||||
buf [pos++] = c;
|
||||
|
||||
// example: newline means time to process buffer
|
||||
if (c == '\n')
|
||||
process_it = true;
|
||||
|
||||
} // end of room available
|
||||
} // end of interrupt routine SPI_STC_vect
|
||||
|
||||
// main loop - wait for flag set in interrupt routine
|
||||
void loop (void)
|
||||
{
|
||||
if (process_it)
|
||||
{
|
||||
buf [pos] = 0;
|
||||
Serial.println (buf);
|
||||
pos = 0;
|
||||
process_it = false;
|
||||
} // end of flag set
|
||||
|
||||
} // end of loop
|
||||
```
|
||||
|
||||
### Programming the HDK
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user