Hello
I have take a close look into SPI routines.
I really not understand them.
I need simple make a connection withe the arduino in amForth.
The basics I understand how to make a pin high or low etc.
But I don’t know how to start to initialize the SPI etc.
Can someone help me with this or give a simple example?
The interface is using the standard pins for the SPI.
I mark the part of the code with <===========? where I have trouble to convert
to amForth.
Thanks for any help.
Cheers,
Jan
#include "SPI.h"
#define SCK_PIN 13
#define MISO_PIN 12
#define MOSI_PIN 11
#define SS_PIN 10
void umFPU_begin(void)
{
digitalWrite(SS_PIN, HIGH);
pinMode(SS_PIN, OUTPUT);
umFPU_reset();
}
//------------------- reset -------------------------------------------------
void umFPU_reset()
{
digitalWrite(SS_PIN, LOW);
// disable SPI.Master
SPI.end(); <===========?
// reset the FPU
digitalWrite(MOSI_PIN, HIGH);
for (byte i = 0; i < 80; i++)
{
digitalWrite(SCK_PIN, HIGH);
digitalWrite(SCK_PIN, LOW);
}
digitalWrite(MOSI_PIN, LOW);
delay(10);
// enable SPI.Master
SPI.setDataMode(SPI_MODE0);
SPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV4);
SPI.begin(); <===========?
digitalWrite(SS_PIN, HIGH);
}
byte umFPU_read(void)
{
byte bval;
digitalWrite(SS_PIN, LOW);
umFPU_readDelay();
bval = SPI.transfer(0); <===========?
digitalWrite(SS_PIN, HIGH);
return bval;
}
void umFPU_write_1(byte b1)
{
digitalWrite(SS_PIN, LOW);
SPI.transfer(b1); <===========?
digitalWrite(SS_PIN, HIGH);
}
_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel