#include sbit _SS = P2^4; sbit LED = 0xA0; void led () interrupt 2 { _SS = 0; // SPI-Slave selektieren SPDAT = 0x45; // Wert schreiben while(_SS == 0); // Warten bis Schreibvorgang zu Ende if(SPDAT == 10) { LED = 0; } else { LED = 1; } } void main() { P2M1 = 0x00; // Freigabe der SPI-Ports (MISO, MOSI, SPICLK, _SS) P2M2 = 0x00; P2 = 0xFF; SPCTL = 0xD4; // Freigabe des SPI-Blocks, MSTR = 1, SSIG = 1) ESPI = 1; EA = 1; EX1 = 1; IT1 = 1; EA=1; while(1) { } } void v_SPIInt(void) interrupt 9 { SPSTAT = 0xFF; // SPI-Flags zuruecksetzen _SS = 1; // SPI-Slave Selektierung zuruecknehmen }