|
@@ -40,103 +40,52 @@
|
|
|
//
|
|
|
//===========входные выводы============
|
|
|
#define pin_PC_STATE(pin) (~(PINC >> (pin - 14)) & 1) // Запрос состояния вывода со сдвигом и инверсией результата
|
|
|
-#define pin_PC_InPullUp(pin) DDRC &=~(1 << (pin - 14)); PORTC |=(1 << (pin - 14)) // Инициализация входа с подтяжкой к VCC
|
|
|
-//
|
|
|
-#define pin_RAZGON_OFF 17 // Пин входа отключения разгона (A3 - это D17/PC3, при изменении подредактировать следующие два макроса)
|
|
|
-#define pin_RAZGON_OFF_INIT pin_PC_InPullUp(pin_RAZGON_OFF) // Определяем вывод отключения разгона, как вход и подтягиваем его внутренним резюком к VCC
|
|
|
-#define pin_RAZGON_OFF_STATE pin_PC_STATE(pin_RAZGON_OFF) // Читаем состояние пина и переводим в булев формат с учетом инверсии (активный - низкий)
|
|
|
-//
|
|
|
-#define pin_STAB_OFF 16 // Пин входа отключения стабилизатора (A2 - это D16/PC2, при изменении подредактировать следующие два макроса)
|
|
|
-#define pin_STAB_OFF_INIT pin_PC_InPullUp(pin_STAB_OFF) // Определяем вывод останова стаба, как вход и подтягиваем его внутренним резюком к VCC
|
|
|
-#define pin_STAB_OFF_STATE pin_PC_STATE(pin_STAB_OFF) // Читаем состояние пина и переводим в булев формат с учетом инверсии (активный - низкий)
|
|
|
-//
|
|
|
+
|
|
|
+// Пин входа отключения разгона (A3)
|
|
|
+// Читаем состояние пина и переводим в булев формат с учетом инверсии (активный - низкий)
|
|
|
+#define pin_RAZGON_OFF_STATE palReadLine(LINE_RAZGON_OFF)
|
|
|
+
|
|
|
+// Пин входа отключения стабилизатора (A2)
|
|
|
+#define pin_STAB_OFF_STATE palReadLine(LINE_STAB_OFF)
|
|
|
//===========вЫходные выводы===========
|
|
|
#define pin_PD_Out(pin) DDRD |=(1 << pin) // Инициализация выхода
|
|
|
#define pin_PD_HIGH(pin) PORTD |=(1 << pin) // Установка выхода
|
|
|
#define pin_PD_LOW(pin) PORTD &=~(1 << pin) // Сброс выхода
|
|
|
#define pin_PD_INV(pin) PORTD ^=(1 << pin) // Инверсия выхода
|
|
|
-//
|
|
|
-//#define pin_OLEDres 2 // Пин сброса OLED индикатора.
|
|
|
-//#define pin_OLEDres_INIT pin_PD_Out(pin_OLEDres)
|
|
|
-//#define pin_OLEDres_HIGH pin_PD_HIGH(pin_OLEDres)
|
|
|
-//#define pin_OLEDres_LOW pin_PD_LOW(pin_OLEDres)
|
|
|
-//
|
|
|
-#define pin_TOut 6 // Пин выхода управления ТЭНом (на твердотельное реле)
|
|
|
-#define pin_TOut_INIT pin_PD_Out(pin_TOut)
|
|
|
-#define pin_TOut_HIGH pin_PD_HIGH(pin_TOut)
|
|
|
-#define pin_TOut_LOW pin_PD_LOW(pin_TOut)
|
|
|
-//
|
|
|
-#define pin_TRelay 7 // Пин выхода управления ТЭНом (на контактное реле в режиме максимальной мощности)
|
|
|
-#define pin_TRelay_INIT pin_PD_Out(pin_TRelay)
|
|
|
-#define pin_TRelay_HIGH pin_PD_HIGH(pin_TRelay)
|
|
|
-#define pin_TRelay_LOW pin_PD_LOW(pin_TRelay)
|
|
|
-//
|
|
|
-//===========тестовые выводы===========
|
|
|
-//#define pin_ZeroOut 5 // Пин выхода импульса ноля (D5 - PD5)
|
|
|
-//#define pin_ZeroOut_INIT pin_PD_Out(pin_ZeroOut)
|
|
|
-//#define pin_ZeroOut_INV pin_PD_INV(pin_ZeroOut)
|
|
|
-//#define pin_ZeroOut_HIGH pin_PD_HIGH(pin_ZeroOut)
|
|
|
-//#define pin_ZeroOut_LOW pin_PD_LOW(pin_ZeroOut)
|
|
|
-//
|
|
|
-//#define pin_DebugOut 7 // Пин для отладки (D7 - PD7)
|
|
|
-//#define pin_DebugOut_INIT pin_PD_Out(pin_DebugOut)
|
|
|
-//#define pin_DebugOut_INV pin_PD_INV(pin_DebugOut)
|
|
|
-//#define pin_DebugOut_HIGH pin_PD_HIGH(pin_DebugOut)
|
|
|
-//#define pin_DebugOut_LOW pin_PD_LOW(pin_DebugOut)
|
|
|
-//
|
|
|
-//#define pin_TestOut 3 // Пин для отладки (D3 - PD3)
|
|
|
-//#define pin_TestOut_INIT pin_PD_Out(pin_TestOut)
|
|
|
-//#define pin_TestOut_INV pin_PD_INV(pin_TestOut)
|
|
|
-//#define pin_TestOut_HIGH pin_PD_HIGH(pin_TestOut)
|
|
|
-//#define pin_TestOut_LOW pin_PD_LOW(pin_TestOut)
|
|
|
-//
|
|
|
//===========выводы подключения кнопок===========
|
|
|
#define pin_PB_STATE(pin) (~(PINB >> (pin - 8)) & 1) // Запрос состояния вывода со сдвигом и инверсией результата
|
|
|
-#define pin_PB_InPullUp(pin) DDRB &=~(1 << (pin - 8)); PORTB |=(1 << (pin - 8)) // Инициализация входа с подтяжкой к VCC
|
|
|
-#define pin_PB_OutLOW(pin) DDRB |=(1 << (pin - 8)); PORTB &=~(1 << (pin - 8)) // Инициализация выхода и сброс его
|
|
|
-//
|
|
|
-#define pin_butt_1 3 // Пин кнопки "Р-". Уменьшение уставки мощности. (D10 - PB2)
|
|
|
-#define pin_butt_1_INIT pin_PB_InPullUp(pin_butt_1) // Определяем вывод кнопки, как вход и подтягиваем его внутренним резюком к VCC
|
|
|
-#define pin_butt_1_STATE pin_PB_STATE(pin_butt_1) // Читаем состояние пина и переводим в булев формат с учетом инверсии (активный - низкий)
|
|
|
-//
|
|
|
-#define pin_butt_2 2 // Пин кнопки "Р+". Увеличение уставки мощности. (D9 - PB1)
|
|
|
-#define pin_butt_2_INIT pin_PB_InPullUp(pin_butt_2) // Определяем вывод кнопки, как вход и подтягиваем его внутренним резюком к VCC
|
|
|
-#define pin_butt_2_STATE pin_PB_STATE(pin_butt_2) // Читаем состояние пина и переводим в булев формат с учетом инверсии (активный - низкий)
|
|
|
-//
|
|
|
-#define pin_butt_3 5 // Пин кнопки "Стоп". Экстренное отключение ТЭНа. (D12 - PB4)
|
|
|
-#define pin_butt_3_INIT pin_PB_InPullUp(pin_butt_3) // Определяем вывод кнопки, как вход и подтягиваем его внутренним резюком к VCC
|
|
|
-#define pin_butt_3_STATE pin_PB_STATE(pin_butt_3) // Читаем состояние пина и переводим в булев формат с учетом инверсии (активный - низкий)
|
|
|
-//
|
|
|
-#define pin_butt_4 4 // Пин кнопки "Разгон". Включение/отключение разгона. (D11 - PB3)
|
|
|
-#define pin_butt_4_INIT pin_PB_InPullUp(pin_butt_4) // Определяем вывод кнопки, как вход и подтягиваем его внутренним резюком к VCC
|
|
|
-#define pin_butt_4_STATE pin_PB_STATE(pin_butt_4) // Читаем состояние пина и переводим в булев формат с учетом инверсии (активный - низкий)
|
|
|
-//
|
|
|
-#define pin_buttGND 8 // Пин временного общего провода для подключения кнопок. (D8 - PB0)
|
|
|
-#define pin_buttGND_INIT pin_PB_OutLOW(pin_buttGND) // Определяем вывод, как вЫход и устанавливаем низкий уровень
|
|
|
-//
|
|
|
-//===============бортовой светодиод==============
|
|
|
-#define pin_LED 13 // Бортовой светодиод подключен к выводу D13 (PB5)
|
|
|
-#define pin_LED_INIT pin_PB_OutLOW(pin_LED) // Определяем вывод, как вЫход и устанавливаем низкий уровень
|
|
|
-#define TURN_LED_ON PORTB |=(1 << (pin_LED - 8)) // Включаем светодиод
|
|
|
-#define TURN_LED_OFF PORTB &=~(1 << (pin_LED - 8))// Выключаем светодиод
|
|
|
|
|
|
+// Пин кнопки "Р-". Уменьшение уставки мощности.
|
|
|
+// Читаем состояние пина и переводим в булев формат с учетом инверсии (активный - низкий)
|
|
|
+#define pin_butt_1_STATE palReadLine(LINE_BTN_1)
|
|
|
+
|
|
|
+// Пин кнопки "Р+". Увеличение уставки мощности.
|
|
|
+#define pin_butt_2_STATE palReadLine(LINE_BTN_2)
|
|
|
+
|
|
|
+// Пин кнопки "Стоп". Экстренное отключение ТЭНа.
|
|
|
+#define pin_butt_3_STATE palReadLine(LINE_BTN_3)
|
|
|
+
|
|
|
+// Пин кнопки "Разгон". Включение/отключение разгона.
|
|
|
+#define pin_butt_4_STATE palReadLine(LINE_BTN_4)
|
|
|
+//===============бортовой светодиод==============
|
|
|
+#define TURN_LED_ON LCD_LED_ON // Включаем светодиод
|
|
|
+#define TURN_LED_OFF LCD_LED_OFF // Выключаем светодиод
|
|
|
//==============управление релюшками=============
|
|
|
#ifdef High_level_triac // управление твердотельным реле высоким уровнем
|
|
|
-#define TURN_SSR_ON pin_TOut_HIGH // Включаем ТЭН
|
|
|
-#define TURN_SSR_OFF pin_TOut_LOW // Выключаем ТЭН
|
|
|
+#define TURN_SSR_ON palSetLine(LINE_SSR) // Включаем ТЭН
|
|
|
+#define TURN_SSR_OFF palClearLine(LINE_SSR) // Выключаем ТЭН
|
|
|
#else // управление твердотельным реле низким уровнем
|
|
|
-#define TURN_SSR_ON pin_TOut_LOW // Включаем ТЭН
|
|
|
-#define TURN_SSR_OFF pin_TOut_HIGH // Выключаем ТЭН
|
|
|
+#define TURN_SSR_ON palClearLine(LINE_SSR) // Включаем ТЭН
|
|
|
+#define TURN_SSR_OFF palSetLine(LINE_SSR) // Выключаем ТЭН
|
|
|
#endif
|
|
|
|
|
|
#ifdef High_level_relay // управление контактным реле высоким уровнем
|
|
|
-#define TURN_RELAY_ON pin_TRelay_HIGH // Включаем ТЭН
|
|
|
-#define TURN_RELAY_OFF pin_TRelay_LOW // Выключаем ТЭН
|
|
|
+#define TURN_RELAY_ON palSetLine(LINE_RELAY) // Включаем ТЭН
|
|
|
+#define TURN_RELAY_OFF palClearLine(LINE_RELAY) // Выключаем ТЭН
|
|
|
#else // управление контактным реле низким уровнем
|
|
|
-#define TURN_RELAY_ON pin_TRelay_LOW // Выключаем ТЭН
|
|
|
-#define TURN_RELAY_OFF pin_TRelay_HIGH // Включаем ТЭН
|
|
|
+#define TURN_RELAY_ON palClearLine(LINE_RELAY) // Выключаем ТЭН
|
|
|
+#define TURN_RELAY_OFF palSetLine(LINE_RELAY) // Включаем ТЭН
|
|
|
#endif
|
|
|
-
|
|
|
//========коэффициенты для ПИД-регулировки=======
|
|
|
#define Kp 2 // Коэффициент пропорциональности для ПИД-подстройки ФЧ сети (степень двойки для регистрового сдвига)
|
|
|
#define Ki 5 // Интегральный коэффициент для ПИД-подстройки ФЧ сети (степень двойки для регистрового сдвига)
|