|
@@ -58,7 +58,7 @@ void sh_init(void)
|
|
|
gpio_initstructure.gpio_pins = GPIO_PINS_0 | GPIO_PINS_1;
|
|
|
gpio_init(GPIOD, &gpio_initstructure);
|
|
|
|
|
|
- // CS для сдвигового регистра U1010
|
|
|
+ // CS для сдвигового регистра U1010 -> MUX301, MUX401
|
|
|
gpio_initstructure.gpio_pins = GPIO_PINS_3;
|
|
|
gpio_init(GPIOD, &gpio_initstructure);
|
|
|
|
|
@@ -81,15 +81,15 @@ void sh_init(void)
|
|
|
spi_enable(SH_SPI, TRUE);
|
|
|
}
|
|
|
|
|
|
-// Управление сигналами EN_CRNT_SNS_1..EN_CRNT_SNS_12
|
|
|
+// Установка сигналов EN_CRNT_SNS_1..EN_CRNT_SNS_12 (режим измерения)
|
|
|
// Получение сигналов ALRM_IN_1..ALRM_IN_12
|
|
|
-void en_crnt_alrm_in(uint16_t val)
|
|
|
+uint16_t sh_ai_mode(uint16_t val)
|
|
|
{
|
|
|
uint16_t ret = 0;
|
|
|
|
|
|
// Данные отправлеяются во второй регистр U402
|
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
|
- SH_SPI->dt = 0x02;
|
|
|
+ SH_SPI->dt = (0x003F) & (val >> 8);
|
|
|
|
|
|
// Данные из второго регистра U400
|
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
@@ -97,7 +97,7 @@ void en_crnt_alrm_in(uint16_t val)
|
|
|
|
|
|
// Данные отправлеяются во второй регистр U302
|
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_TDBE_FLAG) == RESET);
|
|
|
- SH_SPI->dt = 0x01;
|
|
|
+ SH_SPI->dt = (0x003F) & val;
|
|
|
|
|
|
// Данные из первого регистра U300
|
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
@@ -106,20 +106,21 @@ void en_crnt_alrm_in(uint16_t val)
|
|
|
gpio_bits_set(GPIOD, GPIO_PINS_0 | GPIO_PINS_1);
|
|
|
gpio_bits_reset(GPIOD, GPIO_PINS_0 | GPIO_PINS_1);
|
|
|
|
|
|
- printf("SH return: %X\r\n", ret);
|
|
|
+ return ret;
|
|
|
+ //printf("SH return: %X\r\n", ret);
|
|
|
}
|
|
|
|
|
|
// Подключает выбранный канал к АЦП
|
|
|
-void an_inp(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;
|
|
|
-
|
|
|
+/*
|
|
|
while (spi_i2s_flag_get(SH_SPI, SPI_I2S_RDBF_FLAG) == RESET);
|
|
|
ret = SH_SPI->dt;
|
|
|
-
|
|
|
+*/
|
|
|
gpio_bits_set(GPIOD, GPIO_PINS_3);
|
|
|
gpio_bits_reset(GPIOD, GPIO_PINS_3);
|
|
|
}
|