Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

#include <SPI.

h>

uint8_t stick_ready, stick_tipe, byte4, byte5, byte6, byte7, byte8, byte9;

void setup() {

// put your setup code here, to run once:

// Input/Output Ports initialization

// Port B initialization

// Function: Bit7=In Bit6=In Bit5=Out Bit4=In Bit3=Out Bit2=Out Bit1=In Bit0=In

DDRB=(0<<DDB7) | (0<<DDB6) | (1<<DDB5) | (0<<DDB4) | (1<<DDB3) | (1<<DDB2) |


(0<<DDB1) | (0<<DDB0);

// State: Bit7=T Bit6=T Bit5=0 Bit4=T Bit3=0 Bit2=0 Bit1=T Bit0=T

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) |


(1<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// SPI initialization

// SPI Type: Master

// SPI Clock Rate: 125.000 kHz

// SPI Clock Phase: Cycle Half

// SPI Clock Polarity: High

// SPI Data Order: LSB First

SPCR=(0<<SPIE) | (1<<SPE) | (1<<DORD) | (1<<MSTR) | (1<<CPOL) | (1<<CPHA) | (1<<SPR1)


| (1<<SPR0);

SPSR=(0<<SPI2X);

Serial.begin(9600);

while(!Serial);

pinMode(10, OUTPUT);

digitalWrite(10, HIGH); delay(200);


}

void loop() {

// put your main code here, to run repeatedly:

digitalWrite(10, LOW);

SPI.transfer(0x01);

stick_tipe=SPI.transfer(0x42);

stick_ready=SPI.transfer(0);

byte4=SPI.transfer(0);

byte5=SPI.transfer(0);

byte6=SPI.transfer(0);

byte7=SPI.transfer(0);

byte8=SPI.transfer(0);

byte9=SPI.transfer(0);

digitalWrite(10, HIGH);

Serial.print("by4=" + (String)byte4); Serial.print("\t");

Serial.print("by5=" + (String)byte5); Serial.print("\t");

Serial.print("by6=" + (String)byte6); Serial.print("\t");

Serial.print("by7=" + (String)byte7); Serial.print("\t");

Serial.print("by8=" + (String)byte8); Serial.print("\t");

Serial.println("by9=" + (String)byte9); Serial.print("\t");

Serial.print("Tipe Stick = " + (String)stick_tipe); Serial.print("\t");

if(stick_tipe==65) {Serial.println("(Digital)");}

else if(stick_tipe==115) {Serial.println("(Analog)");}

delay(1000);

Serial.println("\n\n");
}

You might also like