English
Language : 

SI7013EVB-UDP-M3L1 Datasheet, PDF (9/26 Pages) Silicon Laboratories – Si7013EVB-UDP-M3L1 Users Guide
Si7013EVB-UDP-M3L1
4.3. Timeout
The Timeout component provides delay and timeout capabilities. The Timeout component is implemented in the
“myCPU.c” file.
The AppBuilder generated “gCPU.c” file implements a tick counter called “msTicks”. The tick counter is
incremented once a millisecond. The current value of the tick counter is obtained by calling get_msTicks().
Timeouts are implemented by calling get_msTicks() to get a starting time and then repeatedly calling
ElapsedTime() to get the number of milliseconds that have elapsed since the starting time. The Delay() routine
does not return until the specified number of milliseconds have elapsed.
4.4. Button
The Button component changes the temperature scale between Celsius and Fahrenheit when the user presses the
S1 button. In addition, the S2 button switches the temperature readings between the internal sensor and the
external thermistor. The Button component is implemented in the “myPB.c” file.
The S1 button on the MCU board is connected to bit 4 of port bank 1 (PB1.4). This bit is high when the button is not
pressed, but when the button is pressed the bit goes low. The S2 button is connected to bit 5 of port bank 1
(PB1.5). The MCU is configured to generate a port match interrupt when a button is pressed.
When the port match interrupt handler detects that a button has been pressed, then the interrupt handler
reconfigures the port match to detect when the button is released. This prevents a large number of useless port
match interrupts while the button is held down.
4.5. LCD Driver
The LCD driver contains routines for displaying characters, strings and numbers on the LCD. The LCD driver is
implemented in the “myLCD0.c” file.
The LCD driver provides the routines myLCD0_put_char(), myLCD0_put_string() and myLCD0_put_number() for
displaying characters, strings and numbers on the LCD. The myLCD0_put_number() displays a number in decimal
and right justified within a specified field width.
The demo software does not use the printf() routine, because the printf() routine is very large and slow. Instead, the
PutHumidity() and PutTemperature() routines call the myLCD0_put_number() routine, which is much smaller and
quicker.
4.6. I2C Driver
The I2C driver provides routines for reading and writing registers on an I2C slave device. The I2C driver is
implemented in the “myI2C0.c” file.
The I2C0_ReadByte() routine and the I2C0_WriteByte() routine read and write 8-bit registers on an I2C slave
device. The demo software uses these routines to access most registers on the Si7013.
The I2C0_ReadData() routine and I2C0_WriteData() routine perform multi-byte reads and writes from an I2C slave
device. The demo software uses the I2C0_ReadData() routine to read the 16-bit Data register on the Si7013.
The Si7013 port header card has two I2C buses. The first bus is connected to the onboard Si7013 device. The
second bus is connected to the flat flexible cable (FFC) connector (J2) on the side of the board. A second Si7013
device can be attached to the FFC connector. The “Bus” parameter in each of the I2C routines selects which bus to
use (I2C_BUS_1 or I2C_BUS_2).
Rev. 0.2
9