void CLK_Einstellen{ LPC_SYSCON->SYSPLLCLKSEL =(1<<0); LPC_SYSCON->SYSPLLCLKUEN =(0<<0); LPC_SYSCON->SYSPLLCLKUEN =(1<<0); LPC_SYSCON->MAINCLKSEL =(1<<0); LPC_SYSCON->MAINCLKUEN =(0<<0); LPC_SYSCON->MAINCLKUEN =(1<<0); LPC_SYSCON->SYSAHBCLKDIV =(1<<0); } void CLK_Configuration(); LPC_SYSCON->CLKOUTCLKSEL =(1<<0); LPC_SYSCON->CLKOUTUEN =(0<<0); LPC_SYSCON->CLKOUTUEN =(1<<0); LPC_SYSCON->CLKOUTDIV =(1<<0); LPC_IOCON->PIO0_1 |=(1<<0)|(1<<4); } void SPI_I0Configuration(){ LPC_SYSCON->PRESETCTRL |= (1<<0); LPC_SYSCON->SYSAHBCLKCTRL |=(1<<11); LPC_SYSCON->SSP0CLKDIV = (1<<1); LPC_IOCON->PIO0_8 &= ~0x07; LPC_IOCON->PIO0_8 |= 0x01; LPC_IOCON->PIO0_9 &= ~0x07; LPC_IOCON->PIO0_9 |= 0x01; LPC_IOCON->SCK_LOC = 0x02; LPC_IOCON->PIO0_6 = 0x02; LPC_IOCON->PIO0_2 &= ~0x07; LPC_IOCON->PIO0_2 |= 0x01; } void SPI_Init(){ uint8_t i, Dummy=Dummy; LPC_SSP0->CR0 = 0x0000; LPC_SSP0->CR0 = 0x0707; LPC_SSP0->CPSR = 0x2; for ( i = 0; i < 8; i++ ){ Dummy = LPC_SSP0->DR; } NVIC_EnableIRQ(SSP0_IRQn); LPC_SSP0->CR1 = (0x1<<1); LPC_SSP0->IMSC = (1<<0)|(1<<1); //Tab 213 } void SPI_Send(){ uint32_t i, length=8; uint8_t Dummy=Dummy, buf=85; for ( i = 0; i < length; i++ ){ while ( (LPC_SSP0->SR & ((1<<1)|(1<<4))) != (1<<1)); LPC_SSP0->DR = buf; while ( (LPC_SSP0->SR & (1<<4))); Dummy = LPC_SSP0->DR; } } int main (void) { //uint32_t i; //initialization of the variables, PCA9620 and I2C I2CCount = 0; animationCounter = 0; I2CInit((uint32_t)I2CMASTER); initGPIO(); initPCA9620(); writeLCD1(LCD); //SPI wird Aufgerufen CLK_Einstellen(); CLK_Configúration(); LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6)|(1<<16); LPC_GPIO0->DIR |= (1<<7); LPC_IOCON->PIO0_7 |= (1<<4); uint8_t i; SPI_I0Configuration(); SPI_Init(); while(1) { if (i==255) LPC_GPIO0->MASKED_ACCESS[1<<7] = ~0; i++; if (i==125){ LPC_GPIO0->MASKED_ACCESS[1<<7] = 0; SPI_Send(); } } return 1; }