|
@@ -26,7 +26,7 @@
|
|
|
#include "ina219.h"
|
|
|
|
|
|
/* Private define ------------------------------------------------------------*/
|
|
|
-// êíîïêà ñ÷èòàåòñÿ íàæàòîé ÷åðåç BTN_FACTOR * BTN_SCAN_PERIOD ms
|
|
|
+// кнопка �читает�� нажатой через BTN_FACTOR * BTN_SCAN_PERIOD ms
|
|
|
#define BTN_SCAN_PERIOD 10
|
|
|
#define BTN_FACTOR 5
|
|
|
|
|
@@ -59,17 +59,17 @@ typedef struct _button_pin {
|
|
|
} button_t;
|
|
|
|
|
|
/* Private constants ---------------------------------------------------------*/
|
|
|
-// ïåðåâîä ÷èñëà 0-7 â íîìåð èíäèêàòîðà
|
|
|
+// перевод чи�ла 0-7 в номер индикатора
|
|
|
const static max7219_reg_t digitPosition[8] = {
|
|
|
RegDigit0, RegDigit1, RegDigit2, RegDigit3,
|
|
|
RegDigit4, RegDigit5, RegDigit6, RegDigit7
|
|
|
};
|
|
|
-// ïåðåâîä çíà÷åíèÿ 0x00 - 0x0F â êîä èíäèêàòîðà
|
|
|
+// перевод значени� 0x00 - 0x0F в код индикатора
|
|
|
const static max7219_sym_t digitValue[16] = {
|
|
|
Sym_0, Sym_1, Sym_2, Sym_3, Sym_4, Sym_5, Sym_6, Sym_7,
|
|
|
Sym_8, Sym_9, Sym_A, Sym_b, Sym_c, Sym_d, Sym_E, Sym_F
|
|
|
};
|
|
|
-// îïðåäåëåíèÿ ïèíîâ êíîïîê
|
|
|
+// определени� пинов кнопок
|
|
|
const static button_t Button[BUTTON_NUM] = {
|
|
|
{BUTTON1_PORT, BUTTON1_PIN},
|
|
|
{BUTTON2_PORT, BUTTON2_PIN},
|
|
@@ -185,7 +185,7 @@ void main(void)
|
|
|
|
|
|
/* Private functions ---------------------------------------------------------*/
|
|
|
static void boardInit(void) {
|
|
|
- /* Íàñêîëüêî ÿ ïîíÿë, äëÿ ÷àñòîò âûøå 16ÌÃö íóæíî ââîäèòü çàäåðæêó ïðè ðàáîòå ñ FLASH:
|
|
|
+ /* �а�колько � пон�л, дл� ча�тот выше 16МГц нужно вводить задержку при работе � FLASH:
|
|
|
- Before using the HSE clock make sure that the "Flash_Wait_States" is set to 1.
|
|
|
- To do so :
|
|
|
- with STVD (menu: Debug Instrument -> MCU configuration -> Options)
|
|
@@ -244,7 +244,7 @@ static void btnScan(void) {
|
|
|
btnTest(&Button[S2], &btn2Cnt, btn2Short, btn2Long);
|
|
|
}
|
|
|
|
|
|
-/** ïðîâåðêà êîíêðåòíîé êíîïêè */
|
|
|
+/** проверка конкретной кнопки */
|
|
|
static void btnTest(button_t const *btn, uint8_t *pressCount, void (*taskShortPress)(void), void (*taskLongPress)(void)) {
|
|
|
if ((btn->port->IDR & btn->pin) == 0) {
|
|
|
if (*pressCount < 255) {
|
|
@@ -259,15 +259,15 @@ static void btnTest(button_t const *btn, uint8_t *pressCount, void (*taskShortPr
|
|
|
*/
|
|
|
} else {
|
|
|
if (*pressCount >= (BTN_FACTOR * 10)) {
|
|
|
- RTOS_SetTask(taskLongPress, 1, 0); // âûçîâ ôóíêöèè ïðè äëèòåëüíîì íàæàòèè
|
|
|
+ RTOS_SetTask(taskLongPress, 1, 0); // вызов функции при длительном нажатии
|
|
|
} else if (*pressCount >= BTN_FACTOR) {
|
|
|
- RTOS_SetTask(taskShortPress, 1, 0); // âûçîâ ôóíêöèè ïðè êîðîòêîì íàæàòèè
|
|
|
+ RTOS_SetTask(taskShortPress, 1, 0); // вызов функции при коротком нажатии
|
|
|
}
|
|
|
*pressCount = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/** ïåðåêëþ÷åíèå ðåæèìîâ îòîáðàæåíèÿ */
|
|
|
+/** переключение режимов отображени� */
|
|
|
static void displayMode(mode_led_t * disp, event_t event, uint8_t pos) {
|
|
|
if (pos != 0) {
|
|
|
pos = 4;
|
|
@@ -363,7 +363,7 @@ static void displayMode(mode_led_t * disp, event_t event, uint8_t pos) {
|
|
|
break;
|
|
|
}
|
|
|
} else if (event == eventLongPress) {
|
|
|
- /* ÊÀ äîëãèõ íàæàòèé */
|
|
|
+ /* К� долгих нажатий */
|
|
|
switch (*disp) {
|
|
|
case displayCI:
|
|
|
if (pos == 0) {
|
|
@@ -399,22 +399,22 @@ static void displayMode(mode_led_t * disp, event_t event, uint8_t pos) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/** îáðàáîò÷èê êîðîòêîãî íàæàòèÿ ïåðâîé êíîïêè */
|
|
|
+/** обработчик короткого нажати� первой кнопки */
|
|
|
static void btn1Short(void) {
|
|
|
displayMode(&modeTopLine, eventShortPress, 0);
|
|
|
}
|
|
|
|
|
|
-/** îáðàáîò÷èê äëèííîãî íàæàòèÿ ïåðâîé êíîïêè */
|
|
|
+/** обработчик длинного нажати� первой кнопки */
|
|
|
static void btn1Long(void) {
|
|
|
displayMode(&modeTopLine, eventLongPress, 0);
|
|
|
}
|
|
|
|
|
|
-/** îáðàáîò÷èê êîðîòêîãî íàæàòèÿ âòîðîé êíîïêè */
|
|
|
+/** обработчик короткого нажати� второй кнопки */
|
|
|
static void btn2Short(void) {
|
|
|
displayMode(&modeBotLine, eventShortPress, 4);
|
|
|
}
|
|
|
|
|
|
-/** îáðàáîò÷èê äëèííîãî íàæàòèÿ âòîðîé êíîïêè */
|
|
|
+/** обработчик длинного нажати� второй кнопки */
|
|
|
static void btn2Long(void) {
|
|
|
Timer.ss = 0;
|
|
|
Timer.mm = 0;
|
|
@@ -458,7 +458,7 @@ static void calculateValues(void) {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * âûâîä èíôû íà âåðõíåì èíäèêàòîðå
|
|
|
+ * вывод инфы на верхнем индикаторе
|
|
|
*/
|
|
|
static void showTopLineU(void) {
|
|
|
showU(0);
|
|
@@ -493,7 +493,7 @@ static void blankTopLine(void) {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * âûâîä èíôû íà íèæíåì èíäèêàòîðå
|
|
|
+ * вывод инфы на нижнем индикаторе
|
|
|
*/
|
|
|
static void showBotLineU(void) {
|
|
|
showU(4);
|
|
@@ -658,14 +658,14 @@ static void showCP(uint8_t pos) {
|
|
|
* LSB = 10 uV, may be negative!!!
|
|
|
*/
|
|
|
static void showSH(uint8_t pos) {
|
|
|
- uint16_t val;
|
|
|
+ uint32_t val;
|
|
|
|
|
|
if (ShuntV < 0) {
|
|
|
val = - ShuntV;
|
|
|
} else {
|
|
|
val = ShuntV;
|
|
|
}
|
|
|
-
|
|
|
+ val *= 10;
|
|
|
showValue(val, pos);
|
|
|
}
|
|
|
|