Code works on Uno but not a Yun

Hello,
I tried this board on Arduino uno and it works,
on Arduini Yun it doesn’t. Could anyone explain why and how to solve?
Here is the code:

#include <SPI.h>

//ADC settings START

#define LTC_CS 2 // LTC2400 Chip Select Pin on Portb 2
#define LTC_MISO 4 // LTC2400 SDO Select Pin on Portb 4
#define LTC_SCK 5 // LTC2400 SCK Select Pin on Portb 5
const int SDCS = 4;
const int ADCCS = 10;
float v_ref=5.0; // Reference Voltage, 5.0 Volt for LT1021 or 3.0 for LP2950-3
float v_out=0.0;

float LTC_2400_read(float v_ref){

float v;
long int ltw = 0; // ADC Data ling int
byte b0; //
byte sig; // sign bit flag
char st1[20]; // float voltage text

pinMode(ADCCS, OUTPUT);
digitalWrite(ADCCS, LOW);
delayMicroseconds(1);

if (digitalRead(MISO) == LOW) {
ltw=0;
sig=0;

b0 = SPI_read(); // read 4 bytes adc raw data with SPI
if ((b0 & 0x20) ==0) sig=1; // is input negative ?
b0 &=0x1F; // discard bit 25…31
ltw |= b0;
ltw <<= 8;
b0 = SPI_read();
ltw |= b0;
ltw <<= 8;
b0 = SPI_read();
ltw |= b0;
ltw <<= 8;
b0 = SPI_read();
ltw |= b0;

delayMicroseconds(1);

digitalWrite(ADCCS, HIGH); // LTC2400 CS HIGH
delay(200);

if (sig) ltw |= 0xf0000000; // if input negative insert sign bit
ltw=ltw/16; // scale result down , last 4 bits have no information
v = ltw * v_ref / 16777216; // max scale
}
digitalWrite(ADCCS, HIGH); // LTC2400 CS hi
delay(20);
return v;
}

byte SPI_read(){
return SPI.transfer(0x00);
}

Split from an old topic

Do NOT hijack topics