|
@@ -63,6 +63,8 @@ void sh_init(void)
|
|
gpio_initstructure.gpio_pins = GPIO_PINS_3;
|
|
gpio_initstructure.gpio_pins = GPIO_PINS_3;
|
|
gpio_init(GPIOD, &gpio_initstructure);
|
|
gpio_init(GPIOD, &gpio_initstructure);
|
|
|
|
|
|
|
|
+ gpio_bits_reset(GPIOD, GPIO_PINS_0 | GPIO_PINS_1 | GPIO_PINS_3);
|
|
|
|
+
|
|
crm_periph_clock_enable(CRM_SPI2_PERIPH_CLOCK, TRUE);
|
|
crm_periph_clock_enable(CRM_SPI2_PERIPH_CLOCK, TRUE);
|
|
|
|
|
|
spi_default_para_init(&spi_init_struct);
|
|
spi_default_para_init(&spi_init_struct);
|
|
@@ -87,6 +89,7 @@ void sh_init(void)
|
|
uint16_t sh_ai_mode(uint16_t val)
|
|
uint16_t sh_ai_mode(uint16_t val)
|
|
{
|
|
{
|
|
uint16_t ret = 0;
|
|
uint16_t ret = 0;
|
|
|
|
+ uint16_t tmp = 0;
|
|
|
|
|
|
// Данные отправлеяются во второй регистр U402
|
|
// Данные отправлеяются во второй регистр U402
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
@@ -94,7 +97,8 @@ uint16_t sh_ai_mode(uint16_t val)
|
|
|
|
|
|
// Данные из второго регистра U400
|
|
// Данные из второго регистра U400
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
- ret = SH_SPI->dt & 0x3F;
|
|
|
|
|
|
+ tmp = SH_SPI->dt;
|
|
|
|
+ ret = tmp & 0x3F;
|
|
|
|
|
|
// Данные отправлеяются во второй регистр U302
|
|
// Данные отправлеяются во второй регистр U302
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
@@ -102,7 +106,7 @@ uint16_t sh_ai_mode(uint16_t val)
|
|
|
|
|
|
// Данные из первого регистра U300
|
|
// Данные из первого регистра U300
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
- ret |= (SH_SPI->dt & 0x3F) << 8;
|
|
|
|
|
|
+ ret |= (SH_SPI->dt & 0x3F) << 6;
|
|
|
|
|
|
gpio_bits_set(GPIOD, GPIO_PINS_0 | GPIO_PINS_1);
|
|
gpio_bits_set(GPIOD, GPIO_PINS_0 | GPIO_PINS_1);
|
|
nop(10);
|
|
nop(10);
|
|
@@ -115,14 +119,21 @@ uint16_t sh_ai_mode(uint16_t val)
|
|
// Подключает выбранный канал к АЦП
|
|
// Подключает выбранный канал к АЦП
|
|
void sh_ai_connect(uint16_t val)
|
|
void sh_ai_connect(uint16_t val)
|
|
{
|
|
{
|
|
- //uint16_t ret;
|
|
|
|
|
|
+ uint16_t ret;
|
|
|
|
+
|
|
|
|
+ while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
|
|
+ SH_SPI->dt = val;
|
|
|
|
+#if 0
|
|
|
|
+ while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
|
|
+ ret = SH_SPI->dt;
|
|
|
|
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
SH_SPI->dt = val;
|
|
SH_SPI->dt = val;
|
|
-/*
|
|
|
|
|
|
+
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
ret = SH_SPI->dt;
|
|
ret = SH_SPI->dt;
|
|
-*/
|
|
|
|
|
|
+#endif
|
|
|
|
+
|
|
gpio_bits_set(GPIOD, GPIO_PINS_3);
|
|
gpio_bits_set(GPIOD, GPIO_PINS_3);
|
|
nop(100);
|
|
nop(100);
|
|
gpio_bits_reset(GPIOD, GPIO_PINS_3);
|
|
gpio_bits_reset(GPIOD, GPIO_PINS_3);
|