/*----------------------------------------------------------------------------*/ static void setupClock(void) { clockEnable(ExternalOsc, &extOscConfig); while (!clockReady(ExternalOsc)); clockEnable(MainClock, &mainClockConfig); }
/*----------------------------------------------------------------------------*/ static void setupClock(void) { clockEnable(MainClock, &initialClockConfig); clockEnable(ExternalOsc, &extOscConfig); while (!clockReady(ExternalOsc)); clockEnable(DividerB, ÷rConfig); while (!clockReady(DividerB)); clockEnable(MainClock, &mainClockConfig); }
void I2CDevice::initSMBusMode() { // enable clock clockEnable(true); // disable I2C module enable(false); //NOTE: followed configuration is SMBus specific configuration // timing configuration for: I2CCLK = SYSCLK = 48 MHz // and transmission type: 100 kHz I2C1->TIMINGR |= ( (I2C_TIMINGR_PRESC & 0xBBBBBBBB) | (I2C_TIMINGR_SCLL & 0x13131313) | (I2C_TIMINGR_SCLH & 0x0F0F0F0F) | (I2C_TIMINGR_SDADEL & 0x22222222) | (I2C_TIMINGR_SCLDEL & 0x44444444)); // rest configuration I2C1->CR1 |= ( I2C_CR1_PECEN // enable PEC ( CRC8 byte ) // | I2C_CR1_ERRIE // enable interrupt on PEC error // | I2C_CR1_TCIE // enable interrupt on Transfer Complete // | I2C_CR1_TXIE // enable interrupt on Transmit buffer empty // | I2C_CR1_RXIE // enable interrupt on Receive buffer Not Empty ); // set the slave address to right register setSlaveAddr(); }
static void run(void) { SET_CPU_IPL(0); clockEnable(); screenEnable(); menuEnable(); showWelcome(); receiverEnable(); clockShow(); runEventLoop(); }