Eingefügt in den library writer #include #ifndef MATLAB_MEX_FILE #define Arduino 100 #define NOP __asm__ __volatile__ ("nop\n\t") #include "Arduino.h" #include "spi.h" #include "spi.cpp" const byte MAX1_CS = 24; // CS pin 24 // SO pin 50 Mega 2560 // CLK pin 52 Mega 2560 #endif Eingefügt in den OUTPUT-Writer if (xD[0]==1) { #ifndef MATLAB_MEX_FILE print( y0[0]((MAX6675(MAX1_CS),2))); float MAX_6675(int CS) { unsigned int KTemp = 0; float Celius = 0; digitalWrite(CS, LOW); NOP; // delay 62.5ns on a 16MHz AtMega, 100ns erforderlich NOP; byte MSB = SPI.transfer(0); // höherwertiges Byte einlesen, D15 ... D8 byte LSB = SPI.transfer(0); // niederwertiges Byte einlesen, D7 ... D0 digitalWrite(CS, HIGH); KTemp = MSB << 8; KTemp = KTemp | LSB; KTemp = KTemp >> 3; Celius = (float) (KTemp * 0.25); return Celius; } #endif } Eingefügt in Discrete Update-Writer if (xD[0] !=1) { #ifndef MATLAB_MEX_FILE SPI.begin(); pinMode(53, OUTPUT); // wegen SPI Funktion notwendig digitalWrite(MAX1_CS, HIGH); // CS High Pegel // digitalWrite(MAX2_CS, HIGH); // digitalWrite(MAX3_CS, HIGH); pinMode(MAX1_CS, OUTPUT); // CS Pin Ausgang // pinMode(MAX2_CS, OUTPUT); // pinMode(MAX3_CS, OUTPUT); #endif xD[0]=1; }