#include "SPImaster.h" #include #include #include #include "Ports.h" using namespace std; void RaiseSS(){ //SS is pin 5 of LPT1 - output char Data; Data=InPort(LPT1); Data=(Data|SS); OutPort(LPT1,Data); return; } void LowerSS(){ //SS is pin 5 of LPT1 - output char Data; Data=InPort(LPT1); Data=Data&(~SS); OutPort(LPT1,Data); return; } //SendByte - in SPI MASTER fashion //will READ a byte everytime it writes a byte char SendByte(char byte){ //CLOCK is on pin 4 of LPT1-output //MISO is on pin 11 of LPT1 -input //MOSI is on pin 3 of LPT1 -output //SS is pin 5 of LPT1 - output char bit; char input=0,bitin; int i; char Data; byte=bitswap(byte); Data=InPort(LPT1); //get first bit to send for(i=0;i<8;i++){ bit=byte & 1; byte = byte >> 1; bit=bit<<1; //lower CLOCK Data=Data&~CLOCK; OutPort(LPT1,Data); //put DATA on MOSI line Data=((Data&~MOSI)|bit); OutPort(LPT1,Data); //raise CLOCK Data=Data|CLOCK; //cout<<(unsigned short)bit; OutPort(LPT1,Data); bitin=(((InPort(LPT1+1)^MISO)&MISO)>>7); input=input|bitin; if(i!=7) input=input<<1; } //Raise Data - acting like a pull-up resistor //cout<>1; } return temp; }