|
@@ -15,7 +15,7 @@ extern mb_param_t mb_param[];
|
|
|
uint16_t mb_init_ao_params(uint16_t i)
|
|
|
{
|
|
|
uint16_t index = i;
|
|
|
- //uint16_t addr = 0;
|
|
|
+ uint16_t addr = 0;
|
|
|
|
|
|
// Статус выходов (вкл./выкл.)
|
|
|
mb_param[index].reg = 0x0400;
|
|
@@ -27,8 +27,18 @@ uint16_t mb_init_ao_params(uint16_t i)
|
|
|
|
|
|
index++;
|
|
|
|
|
|
- // Режим работы выходов
|
|
|
+ // Статус выходов в безопасном режиме (вкл./выкл.)
|
|
|
mb_param[index].reg = 0x0401;
|
|
|
+ mb_param[index].size = 1;
|
|
|
+ mb_param[index].param = (uint8_t*)&settings.ao_state_save_bits;
|
|
|
+ mb_param[index].set = NULL;
|
|
|
+ mb_param[index].get = NULL;
|
|
|
+ mb_param[index].check_handler = mb_check_dummy;
|
|
|
+
|
|
|
+ index++;
|
|
|
+
|
|
|
+ // Режим работы выходов
|
|
|
+ mb_param[index].reg = 0x0402;
|
|
|
mb_param[index].size = 1;
|
|
|
mb_param[index].param = (uint8_t*)&settings.ao_mode_bits;
|
|
|
mb_param[index].set = mb_set_ao_mode;
|
|
@@ -37,8 +47,48 @@ uint16_t mb_init_ao_params(uint16_t i)
|
|
|
|
|
|
index++;
|
|
|
|
|
|
+ // Режим работы выходов
|
|
|
+ mb_param[index].reg = 0x0403;
|
|
|
+ mb_param[index].size = 1;
|
|
|
+ mb_param[index].param = (uint8_t*)&settings.ao_mode_save_bits;
|
|
|
+ mb_param[index].set = NULL;
|
|
|
+ mb_param[index].get = NULL;
|
|
|
+ mb_param[index].check_handler = mb_check_dummy;
|
|
|
+
|
|
|
+ index++;
|
|
|
+
|
|
|
// ---------------------------------------------------------------------- //
|
|
|
|
|
|
+ // Значения выходов. Регистры 0x0410 - 0x0413.
|
|
|
+ addr = 0x0410;
|
|
|
+ for (int i = 0; i < AO_NUMBER; i++)
|
|
|
+ {
|
|
|
+ mb_param[index].reg = addr;
|
|
|
+ mb_param[index].size = 1;
|
|
|
+ mb_param[index].param = (uint8_t*)&settings.ao[i].value;
|
|
|
+ mb_param[index].set = NULL;
|
|
|
+ mb_param[index].get = NULL;
|
|
|
+ mb_param[index].check_handler = mb_check_dummy;
|
|
|
+
|
|
|
+ addr += 1;
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Значения выходов в безопасном режиме. Регистры 0x0410 - 0x0413.
|
|
|
+ addr = 0x0420;
|
|
|
+ for (int i = 0; i < AO_NUMBER; i++)
|
|
|
+ {
|
|
|
+ mb_param[index].reg = addr;
|
|
|
+ mb_param[index].size = 1;
|
|
|
+ mb_param[index].param = (uint8_t*)&settings.ao_save[i].value;
|
|
|
+ mb_param[index].set = NULL;
|
|
|
+ mb_param[index].get = NULL;
|
|
|
+ mb_param[index].check_handler = mb_check_dummy;
|
|
|
+
|
|
|
+ addr += 1;
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+
|
|
|
return index;
|
|
|
}
|
|
|
|
|
@@ -59,12 +109,8 @@ mb_delay_action_t mb_set_ao_state(void)
|
|
|
//
|
|
|
mb_delay_action_t mb_set_ao_mode(void)
|
|
|
{
|
|
|
-
|
|
|
-#if 0
|
|
|
- ai_set_meas_mode();
|
|
|
-#endif
|
|
|
+ ao_set_mode();
|
|
|
return MB_SAVE_SETTINGS;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
#endif
|