Add reset_button.c and test_led.c. Clean up init_peripherials.c

This commit is contained in:
László Monda
2016-10-05 02:05:05 +02:00
parent 5936129ebc
commit f0b63a6f7b
8 changed files with 79 additions and 42 deletions

View File

@@ -5,42 +5,35 @@
#include "i2c.h"
#include "led_driver.h"
void InitPeripherials(void)
{
// Ungate ports.
CLOCK_EnableClock(kCLOCK_PortA); // LEDs
CLOCK_EnableClock(kCLOCK_PortB); // SW3
CLOCK_EnableClock(kCLOCK_PortC); // SW2
CLOCK_EnableClock(kCLOCK_PortD); // LEDs, I2C
// Set up switches
port_pin_config_t switchConfig = {
void InitI2c() {
port_pin_config_t pinConfig = {
.pullSelect = kPORT_PullUp,
.mux = kPORT_MuxAsGpio,
.openDrainEnable = kPORT_OpenDrainEnable,
.mux = kPORT_MuxAlt7
};
PORT_SetPinConfig(RESET_BUTTON_PORT, RESET_BUTTON_PIN, &switchConfig);
// Initialize LEDs.
CLOCK_EnableClock(I2C_MAIN_BUS_SDA_CLOCK);
CLOCK_EnableClock(I2C_MAIN_BUS_SCL_CLOCK);
PORT_SetPinMux(TEST_LED_GPIO_PORT, TEST_LED_GPIO_PIN, kPORT_MuxAsGpio);
TEST_LED_INIT(0);
// Initialize I2C.
port_pin_config_t pinConfig = {0};
pinConfig.pullSelect = kPORT_PullUp;
pinConfig.openDrainEnable = kPORT_OpenDrainEnable;
PORT_SetPinConfig(PORTD, 2, &pinConfig);
PORT_SetPinConfig(PORTD, 3, &pinConfig);
PORT_SetPinMux(PORTD, 2, kPORT_MuxAlt7);
PORT_SetPinMux(PORTD, 3, kPORT_MuxAlt7);
PORT_SetPinConfig(I2C_MAIN_BUS_SDA_PORT, I2C_MAIN_BUS_SDA_PIN, &pinConfig);
PORT_SetPinConfig(I2C_MAIN_BUS_SCL_PORT, I2C_MAIN_BUS_SCL_PIN, &pinConfig);
i2c_master_config_t masterConfig;
uint32_t sourceClock;
I2C_MasterGetDefaultConfig(&masterConfig);
masterConfig.baudRate_Bps = I2C_BAUD_RATE;
sourceClock = CLOCK_GetFreq(I2C_MASTER_CLK_SRC);
I2C_MasterInit(I2C_BASEADDR_MAIN_BUS, &masterConfig, sourceClock);
masterConfig.baudRate_Bps = I2C_MAIN_BUS_BAUD_RATE;
uint32_t sourceClock = CLOCK_GetFreq(I2C_MASTER_BUS_CLK_SRC);
I2C_MasterInit(I2C_MAIN_BUS_BASEADDR, &masterConfig, sourceClock);
}
void InitPeripherials(void)
{
CLOCK_EnableClock(kCLOCK_PortA);
CLOCK_EnableClock(kCLOCK_PortB);
CLOCK_EnableClock(kCLOCK_PortC);
CLOCK_EnableClock(kCLOCK_PortD);
InitResetButton();
InitTestLed();
InitI2c();
}