diff --git a/.code_review_properties b/.code_review_properties
new file mode 100644
index 0000000..36a49b9
--- /dev/null
+++ b/.code_review_properties
@@ -0,0 +1,80 @@
+
+
+
+ property.default.description
+
+ 1970-01-01 :: 00:00:00:000 GMT-10:00
+ review
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.cproject_org b/.cproject_org
new file mode 100644
index 0000000..e696c93
--- /dev/null
+++ b/.cproject_org
@@ -0,0 +1,306 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project_org b/.project_org
new file mode 100644
index 0000000..56be3cf
--- /dev/null
+++ b/.project_org
@@ -0,0 +1,76 @@
+
+
+ A1210
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+ ?children?
+ ?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|\||
+
+
+ ?name?
+
+
+
+ org.eclipse.cdt.make.core.append_environment
+ true
+
+
+ org.eclipse.cdt.make.core.buildArguments
+
+
+
+ org.eclipse.cdt.make.core.buildCommand
+ make
+
+
+ org.eclipse.cdt.make.core.buildLocation
+ ${workspace_loc:/STM32100B-EVAL/Debug}
+
+
+ org.eclipse.cdt.make.core.contents
+ org.eclipse.cdt.make.core.activeConfigSettings
+
+
+ org.eclipse.cdt.make.core.enableAutoBuild
+ false
+
+
+ org.eclipse.cdt.make.core.enableCleanBuild
+ true
+
+
+ org.eclipse.cdt.make.core.enableFullBuild
+ true
+
+
+ org.eclipse.cdt.make.core.stopOnError
+ true
+
+
+ org.eclipse.cdt.make.core.useDefaultBuildCmd
+ true
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+
+
+
+
+
+ org.eclipse.cdt.core.cnature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
+
+
+
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
new file mode 100644
index 0000000..800bc68
--- /dev/null
+++ b/.settings/language.settings.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.settings/org.eclipse.cdt.core.prefs b/.settings/org.eclipse.cdt.core.prefs
new file mode 100644
index 0000000..7347216
--- /dev/null
+++ b/.settings/org.eclipse.cdt.core.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+environment/project/com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1843313540/PATH/delimiter=;
+environment/project/com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1843313540/PATH/operation=append
+environment/project/com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1843313540/PATH/value=C\:\\Program Files (x86)\\Atollic\\TrueSTUDIO for STM32 9.1.0\\ARMTools\\bin;C\:\\Program Files (x86)\\Atollic\\TrueSTUDIO for STM32 9.1.0\\Tools;C\:/Program Files (x86)/Atollic/TrueSTUDIO for STM32 9.1.0/ide/jre/bin/client;C\:/Program Files (x86)/Atollic/TrueSTUDIO for STM32 9.1.0/ide/jre/bin;C\:/Program Files (x86)/Atollic/TrueSTUDIO for STM32 9.1.0/ide/jre/lib/i386;C\:\\Program Files\\Eclipse Adoptium\\jdk-21.0.2.13-hotspot\\bin;C\:\\Program Files\\Common Files\\Oracle\\Java\\javapath;C\:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C\:\\Windows\\system32;C\:\\Windows;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C\:\\Windows\\System32\\OpenSSH\\;C\:\\Program Files\\Git\\cmd;C\:\\Program Files (x86)\\STMicroelectronics\\STM32 ST-LINK Utility\\ST-LINK Utility;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin\\;C\:\\Program Files\\IVI Foundation\\VISA\\Win64\\Bin\\;C\:\\Program Files (x86)\\IVI Foundation\\VISA\\WinNT\\Bin;C\:\\PROGRA~2\\IVIFOU~1\\VISA\\WinNT\\Bin;C\:\\Strawberry\\c\\bin;C\:\\Strawberry\\perl\\site\\bin;C\:\\Strawberry\\perl\\bin;C\:\\Program Files\\Docker\\Docker\\resources\\bin;C\:\\Users\\Limin\\AppData\\Local\\Microsoft\\WindowsApps;C\:\\Users\\Limin\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C\:\\Qt\\Qt5.14.2\\5.14.2\\mingw73_32\\bin;C\:\\Qt\\Qt5.14.2\\5.14.2\\mingw73_64\\bin;C\:\\Program Files (x86)\\Atollic\\TrueSTUDIO for STM32 9.1.0
+environment/project/com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1843313540/append=true
+environment/project/com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1843313540/appendContributed=true
diff --git a/A1210 Debug.launch b/A1210 Debug.launch
new file mode 100644
index 0000000..8f6641a
--- /dev/null
+++ b/A1210 Debug.launch
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/A1210_converter.log b/A1210_converter.log
new file mode 100644
index 0000000..38d1447
--- /dev/null
+++ b/A1210_converter.log
@@ -0,0 +1,46 @@
+Project: A1210
+Converter: Atollic TrueSTUDIO project converter
+Date: 20240502
+
+Post-build step might need some manual actions.
+Unknown value type "" for id com.atollic.truestudio.as.general.incpath on tool com.atollic.truestudio.exe.debug.toolchain.as
+Unknown value type "" for id com.atollic.truestudio.gcc.symbols.defined on tool com.atollic.truestudio.exe.debug.toolchain.as
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+Unknown value type "" for id com.atollic.truestudio.common_options.target.interwork on tool com.atollic.truestudio.exe.debug.toolchain.gcc
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+No map found for id: com.atollic.truestudio.gcc.optimization.level.O0
+Unknown value type "" for id com.atollic.truestudio.ld.libraries.list on tool com.atollic.truestudio.exe.debug.toolchain.ld
+Unknown value type "" for id com.atollic.truestudio.ld.libraries.searchpath on tool com.atollic.truestudio.exe.debug.toolchain.ld
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+Unknown value type "" for id com.atollic.truestudio.gpp.optimization.fno_rtti on tool com.atollic.truestudio.exe.debug.toolchain.gpp
+Unknown value type "" for id com.atollic.truestudio.gpp.optimization.fno_exceptions on tool com.atollic.truestudio.exe.debug.toolchain.gpp
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+Unknown value type "" for id com.atollic.truestudio.ldcc.libraries.list on tool com.atollic.truestudio.exe.debug.toolchain.ldcc
+Unknown value type "" for id com.atollic.truestudio.ldcc.libraries.searchpath on tool com.atollic.truestudio.exe.debug.toolchain.ldcc
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+Post-build step might need some manual actions.
+Unknown value type "" for id com.atollic.truestudio.as.general.incpath on tool com.atollic.truestudio.exe.release.toolchain.as
+Unknown value type "" for id com.atollic.truestudio.gcc.symbols.defined on tool com.atollic.truestudio.exe.release.toolchain.as
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+Unknown value type "" for id com.atollic.truestudio.common_options.target.interwork on tool com.atollic.truestudio.exe.release.toolchain.gcc
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+No map found for id: com.atollic.truestudio.gcc.optimization.level.Os
+Unknown value type "" for id com.atollic.truestudio.ld.libraries.list on tool com.atollic.truestudio.exe.release.toolchain.ld
+Unknown value type "" for id com.atollic.truestudio.ld.libraries.searchpath on tool com.atollic.truestudio.exe.release.toolchain.ld
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+Unknown value type "" for id com.atollic.truestudio.gpp.optimization.fno_rtti on tool com.atollic.truestudio.exe.release.toolchain.gpp
+Unknown value type "" for id com.atollic.truestudio.gpp.optimization.fno_exceptions on tool com.atollic.truestudio.exe.release.toolchain.gpp
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
+Unknown value type "" for id com.atollic.truestudio.ldcc.libraries.list on tool com.atollic.truestudio.exe.release.toolchain.ldcc
+Unknown value type "" for id com.atollic.truestudio.ldcc.libraries.searchpath on tool com.atollic.truestudio.exe.release.toolchain.ldcc
+Option com.atollic.truestudio.common_options.target.endianess is no longer supported
+Option com.atollic.truestudio.common_options.target.instr_set is no longer supported
diff --git a/Core/Inc/my.h b/Core/Inc/my.h
index 5c6f31b..8293401 100644
--- a/Core/Inc/my.h
+++ b/Core/Inc/my.h
@@ -56,7 +56,6 @@ typedef enum
typedef enum //перечисление для основного меню
{
- WORK = 0,
KPR0 ,
KPR1 ,
KPR2 ,
@@ -69,9 +68,10 @@ typedef enum //
FVCH ,
FNCH,
GROUND,
- SAVING
}mainMenuState;
+
+
typedef enum //перечисление для сервисного меню
{
KUSET = 0,
diff --git a/Core/Src/keys.c b/Core/Src/keys.c
index dc1a161..7833f67 100644
--- a/Core/Src/keys.c
+++ b/Core/Src/keys.c
@@ -5,6 +5,7 @@
#include "my.h"
extern UserData_TypeDef currentData;
+extern bool menuItemIsEditable;
extern int menuPointer;
extern uint16_t dvd;
extern int ignoreOff_flag;
@@ -16,20 +17,44 @@ __IO uint16_t KEY_STATE = 0;
void keysHandler(void){
+
uint16_t key = KEY_STATE;
KEY_STATE = 0;
+
if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_RESET) ignoreOff_flag=0; //как только кнопку включения отпустили, перестаём её игнорировать
- if((HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET)&&(ignoreOff_flag==0))
- {HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin , GPIO_PIN_SET);} //
+
+ if((HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET)&&(ignoreOff_flag==0)){
+ HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin , GPIO_PIN_SET);
+ } //
if(key==OK_BTN_Pin){ //По нажатию ОК
- //if(menuPointer==GROUND){menuPointer=WORK;} //todo сделай сохранение //Если крайний пункт меню то возвращаемся к работе
- menuPointer++; //иначе следующий пункт
+ if(menuItemIsEditable==0){
+ menuItemIsEditable=1;
+ return; //вваливаемся в редактирование
+ }else{menuItemIsEditable=0;
+ return;} // вываливаемся из него
}
+ if(!menuItemIsEditable){
+
+ if(key==UP_BTN_Pin){ //По нажатию ОК
+ if(menuPointer==KPR0){menuPointer=GROUND;} //todo сделай сохранение //Если крайний пункт меню то возвращаемся
+ else menuPointer--; //иначе следующий пункт
+ }
+
+ if(key==DN_BTN_Pin){ //По нажатию ОК
+ if(menuPointer==GROUND){menuPointer=KPR0;} //todo сделай сохранение //Если крайний пункт меню то возвращаемся
+ else menuPointer++; //иначе следующий пункт
+ }
+
+ }
+
+
+if(menuItemIsEditable){
+
switch (menuPointer){
case KPR0:
@@ -90,7 +115,6 @@ void keysHandler(void){
case KPR4:
-
if((key==UP_BTN_Pin)) {
if((currentData.IK4<9)&&(currentData.IK4>=0)) currentData.IK4++;
else if(currentData.IK4=='~') currentData.IK4=0;
@@ -105,7 +129,6 @@ void keysHandler(void){
break;
case KPR5:
-
if((key==UP_BTN_Pin)) {
if((currentData.IK5<9)&&(currentData.IK5>=0)) currentData.IK5++;
else if(currentData.IK5=='~') currentData.IK5=0;
@@ -145,6 +168,7 @@ void keysHandler(void){
menuPointer++;}
break;
+
case UNITSELECT:
if((key==UP_BTN_Pin)&&(currentData.UNITAccel)) {currentData.UNIT--; sh_applysetting(¤tData);}
@@ -169,17 +193,17 @@ void keysHandler(void){
if((key==UP_BTN_Pin)) {currentData.IPZ=1; sh_applysetting(¤tData);}
if((key==DN_BTN_Pin)) {currentData.IPZ=0; sh_applysetting(¤tData);}
break;
-
+/*
case SAVING:
wrPar();
menuPointer=WORK;
sh_applysetting(¤tData);//todo Сделать по нормальному.
break;
-
+*/
} //close switch
-
+}
}; //close keysHandler
@@ -200,8 +224,6 @@ void keysHandlerCallibration(void){
menuPointer++; //иначе следующий пункт
}
-
-
switch (menuPointer){
@@ -232,8 +254,6 @@ void keysHandlerCallibration(void){
}
break;
-
-
case DAC2SET:
if(key==UP_BTN_Pin) {
if((correctedKu[currentData.IKU]+10<=4095)) correctedKu[currentData.IKU]=correctedKu[currentData.IKU]+10;
@@ -258,7 +278,6 @@ void keysHandlerCallibration(void){
case SAVE:
-
wrCor();
sh_applysetting(¤tData);//todo Сделать по нормальному.
menuPointer=KUSET;
diff --git a/Core/Src/main.c b/Core/Src/main.c
index a636c3e..5306273 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -92,7 +92,6 @@ int main(void)
MX_DMA_Init();
MX_TIM3_Init();
MX_ADC1_Init();
-
MX_SPI1_Init();
MX_TIM7_Init();
@@ -109,34 +108,25 @@ int main(void)
DrawLogo();
ssd1306_Fill(Black);
ssd1306_UpdateScreen();
-
-
-
//
-
if(workMode==NORMAL){screenDraw(); // todo: Убрать костыль!!! Считаем в экране значение на DAC.
sh_applysetting(¤tData); }// применяем настройки из стуктуры с ЦАП на всю
-
while (workMode==NORMAL){
if(needSave)
{
needSave = false;
-
sh_applysetting(¤tData);
wrPar();
}
-
-
HAL_UART_Receive_IT(&huart1, (uint8_t*)buff, 1); //начало цепочки прерываний
+
check_reload();
keysHandler();
-
-
if(RefreshScreen){
screenDraw();
ssd1306_UpdateScreen();
@@ -155,6 +145,7 @@ int main(void)
currentData.IFN=Lp100000;
currentData.IFV=Hp0_2;
sh_applysetting(¤tData); }//
+
while (workMode==CALLIBRATION){
check_reload();
keysHandlerCallibration();
diff --git a/Core/Src/my.c b/Core/Src/my.c
index 8555834..d403613 100644
--- a/Core/Src/my.c
+++ b/Core/Src/my.c
@@ -9,6 +9,9 @@ extern UserData_TypeDef currentData;
extern uint16_t correctedKu[13];
extern float kNormToDAC;
+static int pulseTime;
+static bool isHiden;
+
char pString[16] = {0}; //Нужна для FloatToASCII
@@ -258,6 +261,36 @@ void DrawSome(int16_t some, uint8_t x, uint8_t y, uint8_t mode){ //
}
+void PulseDrawSome(int16_t some, uint8_t x, uint8_t y, uint8_t mode){ //Моргаем надписью
+ //static int pulseTime;
+ //static bool isHiden;
+
+if(!pulseTime) pulseTime=HAL_GetTick()+200; //ты у именя первый
+ if(pulseTime