TelenkovDmitry 1 долоо хоног өмнө
parent
commit
09c81b36b4

+ 1 - 1
desk/libs/thirdparty/oled_ssd1327_new/SSD1327.cpp

@@ -23,7 +23,7 @@ extern "C" {
 extern uint8_t buffer[];
 //#define frameBuffer buffer[];
 
-SSD1327 ssd1327(0, 0, 0);
+//SSD1327 ssd1327(0, 0, 0);
 
 SSD1327::SSD1327(int cs, int dc, int rst) {
     frameBuffer = buffer;

+ 2 - 2
desk/modules/menu/menu.cpp

@@ -7,7 +7,7 @@
 
 #define DBG if(0)
 
-#define MON_DELAY           1000
+#define MON_DELAY           100
 
 osMessageQId    menu_event;
 osMutexId   menu_mutex;
@@ -102,7 +102,7 @@ static void vUpdate(void const *params)
     {
         osDelay(MON_DELAY);
         
-#if 1        
+#if 0        
         // Имитация изменения счетчиков для теста
         inc_raw_counters();
 #endif        

+ 50 - 30
desk/modules/menu/menu_items.cpp

@@ -59,7 +59,7 @@ void menuFocus(void)
 {
     // Пункт "Сбросить счетчики"
     if (selectedMenuItem->Select == MCELL_RES) {
-        set_raw_counters(0, 0);
+        set_raw_counters(0, 0, 0);
         return;
     }
     
@@ -162,8 +162,12 @@ void change_revers(bool dir)
 static void screen_draw_main(uint8_t sel)
 {
     uint32_t raw_forw_turns, raw_back_turns, dir;
-    
+    int total;
+    move_t move;
+        
     get_raw_params(&raw_forw_turns, &raw_back_turns, &dir);
+    get_total(&total);
+    move = get_move();
     
     SSD1327_Clear(BLACK);
     
@@ -182,14 +186,16 @@ static void screen_draw_main(uint8_t sel)
     GFX_DrawString(8, 40, (char*)screen_str_buf, 15, 0);
     
     memset(screen_str_buf, 0, SCREEN_BUF_LEN);
-    sprintf(screen_str_buf, "T: %u", 0);
+    sprintf(screen_str_buf, "T: %d", total);
     GFX_DrawString(8, 60, (char*)screen_str_buf, 15, 0);
     
     memset(screen_str_buf, 0, SCREEN_BUF_LEN);
-    if (dir == 1)
-        sprintf(screen_str_buf, "Move fwd");
-    else
-        sprintf(screen_str_buf, "Move back");
+    if (move == m_forward)
+        sprintf(screen_str_buf, "M: forward");
+    else if (move == m_back)
+        sprintf(screen_str_buf, "M: back");
+    else 
+        sprintf(screen_str_buf, "M: stop");
     GFX_DrawString(8, 80, (char*)screen_str_buf, 15, 0);
         
     SSD1327_Display();
@@ -202,47 +208,61 @@ static void screen_draw_settings(uint8_t sel)
     
     SSD1327_Clear(BLACK);
     
-    //GFX_DrawRectangle(1, 1, 126, 125, 15);
-    
-    
-    //GFX_DrawRoundRectangle(1, 1, 126, 125, 3, 15);
+    // Рамка
+    GFX_DrawRoundRectangle(1, 1, 126, 125, 3, 15);
     
     select = sel == MCELL_K1 ? true : false;
-    //cli_print_int_param((char*)"F 1:   ", settings.factor_1, select);
     memset(screen_str_buf, 0, SCREEN_BUF_LEN);
     sprintf(screen_str_buf, "F 1: %u", settings.factor_1);
-    //GFX_DrawString(8, 20, (char*)screen_str_buf, 15, 0);
-            
+    GFX_DrawString(8, 20, (char*)screen_str_buf, 15, 0);
+       
     if (select)
-        oled_draw_rec(3, 5, 123, 22, 15);
+        oled_draw_string_frame(0);
     
     select = sel == MCELL_K2 ? true : false;
-    //cli_print_int_param((char*)"F 1:   ", settings.factor_1, select);
     memset(screen_str_buf, 0, SCREEN_BUF_LEN);
     sprintf(screen_str_buf, "F 2: %u", settings.factor_2);
-    //GFX_DrawString(8, 40, (char*)screen_str_buf, 15, 0);
-    
-    
-    SSD1327_Display();
-/*    
-    select = sel == MCELL_K1 ? true : false;
-    cli_print_int_param((char*)"Factor 1:   ", settings.factor_1, select);
+    GFX_DrawString(8, 40, (char*)screen_str_buf, 15, 0);
     
-    select = sel == MCELL_K2 ? true : false;
-    cli_print_int_param((char*)"Factor 2:   ", settings.factor_2, select);
+    if (select)
+        oled_draw_string_frame(1);
     
     select = sel == MCELL_REV ? true : false;
+    memset(screen_str_buf, 0, SCREEN_BUF_LEN);
     if (settings.revers == true)
-        cli_print_str_param((char*)"Revers:     ", (char*)"yes", select);
+        sprintf(screen_str_buf, "Rev.:  yes");
     else
-        cli_print_str_param((char*)"Revers:     ", (char*)"no", select);
+        sprintf(screen_str_buf, "Rev.:  no");
+    GFX_DrawString(8, 60, (char*)screen_str_buf, 15, 0);
+    
+    if (select)
+        oled_draw_string_frame(2);
     
     select = sel == MCELL_RES ? true : false;
-    cli_print_str_param((char*)"Reset counters", (char*)"", select);
+    memset(screen_str_buf, 0, SCREEN_BUF_LEN);
+    if (settings.revers == true)
+        sprintf(screen_str_buf, "Reset");
+    else
+        sprintf(screen_str_buf, "Reset");
+    GFX_DrawString(8, 80, (char*)screen_str_buf, 15, 0);
+    
+    if (select)
+        oled_draw_string_frame(3);
+    
+    SSD1327_Display();
     
     select = sel == MCELL_SAVE ? true : false;
-    cli_print_str_param((char*)"Save settings", (char*)"", select);
-*/
+    memset(screen_str_buf, 0, SCREEN_BUF_LEN);
+    if (settings.revers == true)
+        sprintf(screen_str_buf, "Save set");
+    else
+        sprintf(screen_str_buf, "Save set");
+    GFX_DrawString(8, 100, (char*)screen_str_buf, 15, 0);
+    
+    if (select)
+        oled_draw_string_frame(4);
+    
+    SSD1327_Display();
 }
 #endif
 // -------------------------------------------------------------------------- //

+ 29 - 4
desk/modules/ssd_1327/oled_common.cpp

@@ -34,6 +34,7 @@ void init_oled(void)
     ssd1327.writeFullBuffer();
 #endif
     
+#if 0    
     SSD1327_DrawPixel(20, 20, 15);
     SSD1327_DrawPixel(21, 20, 15);
     SSD1327_DrawPixel(22, 20, 15);
@@ -49,7 +50,7 @@ void init_oled(void)
     SSD1327_DrawPixel(20, 23, 15);
     SSD1327_DrawPixel(21, 23, 15);
     SSD1327_DrawPixel(22, 23, 15);
-    
+#endif    
     
     //GFX_Image(15, 0, (uint8_t*)logo_grayscale, 96, 96);
             
@@ -118,12 +119,36 @@ void oled_draw_rec(int x_start, int y_start, int x_end, int y_end, uint8_t color
     for (int i = 0; i < y_end; i++) {
         GFX_DrawLine(x_start, y_start + i, x_end, y_start + i, color);
     }
-    //GFX_DrawLine(x_start, y_start, x_end, y_start, color);
     GFX_DrawLine(x_start, y_end, x_end, y_end, color);
-    //GFX_DrawLine(x_start, y_start, x_start, y_end, color);
-    //GFX_DrawLine(x_end, y_start, x_end, y_end, color);
 }
 
+
+#define STR_H               20
+#define STR_Y_S             36           
+#define STR_FRAME_START_Y   8
+
+#define STR_X_S             4
+#define STR_X_E             123
+
+//
+void oled_draw_string_frame(uint8_t str_num)
+{
+    for (int i = 0; i < 2; i++) {
+        // нижняя
+        GFX_DrawLine(STR_X_S, str_num*STR_H + STR_Y_S + i, STR_X_E, str_num*STR_H + STR_Y_S + i, 15);
+        
+        // верхняя
+        GFX_DrawLine(STR_X_S, str_num*STR_H + STR_Y_S - STR_H + i, STR_X_E, str_num*STR_H + STR_Y_S - STR_H + i, 15);
+    }
+    
+    // Правая
+    GFX_DrawLine(STR_X_E, str_num*STR_H + STR_Y_S, STR_X_E, str_num*STR_H + STR_Y_S - STR_H, 15);
+    
+    // Левая
+    GFX_DrawLine(STR_X_S, str_num*STR_H + STR_Y_S, STR_X_S, str_num*STR_H + STR_Y_S - STR_H, 15);
+}
+
+
 //
 void init_gpio_oled(void)
 {

+ 2 - 0
desk/modules/ssd_1327/oled_common.h

@@ -14,5 +14,7 @@ void oled_draw_rec(int x_start, int y_start, int x_end, int y_end, uint8_t color
 //
 void init_gpio_oled(void);
 
+//
+void oled_draw_string_frame(uint8_t str_num);
 
 #endif // __OLED_COMMON_H

+ 64 - 3
desk/modules/uart_bridge/uart_bridge.cpp

@@ -1,11 +1,13 @@
 #include "stm32g4xx_hal.h"
 #include "uart_bridge.h"
 #include "uart_bridge_cfg.h"
+#include "settings.h"
 #include "cmsis_os.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
+#define DBG if(0)
 
 UART_HandleTypeDef huart_bridge;
 osMessageQId mb_rx_queue;
@@ -19,8 +21,13 @@ static char rx_buf[DATA_BUF_SIZE];
 
 uint32_t forw_turns;
 uint32_t back_turns;
+uint32_t forw_turns_old;
+uint32_t back_turns_old;
+int total_turns;
+move_t move = m_stop;
 uint32_t direction;
 
+
 //
 void init_usart(void)
 {
@@ -84,7 +91,7 @@ void vUartBridge(void const *params)
         event = osMessageGet(mb_rx_queue, 1000);
        
         if (event.status == osEventMessage) {
-            printf("%c", event.value.v);
+            DBG printf("%c", event.value.v);
             if (event.value.v == '{') {
                 rx_buf[cnt++] = event.value.v;
                 begin = true;
@@ -99,8 +106,22 @@ void vUartBridge(void const *params)
                 back_turns = get_uint_param(rx_buf, 1);
                 direction = get_uint_param(rx_buf, 2);
 
+                // Расчет пройденного пути
+                if (settings.revers == false) {
+                    total_turns = forw_turns - back_turns;
+                }
+                else {
+                    total_turns = back_turns - forw_turns;
+                }
+
+                // Направление движения и остановка
+                calc_move();
+                
                 begin = false;
                 cnt = 0;
+                
+                forw_turns_old = forw_turns;
+                back_turns_old = back_turns;
             }
             
             if (cnt == DATA_BUF_SIZE) {
@@ -141,7 +162,7 @@ void usart_bridge_rx_cb(void)
 void usart_error_cb(void)
 {
     error_cnt++;
-    printf("error cb\r\n");
+    DBG printf("error cb\r\n");
 }
 
 extern "C" {
@@ -153,6 +174,33 @@ void USART2_IRQHandler(void)
 
 }
 
+// -------------------------------------------------------------------------- //
+// Расчет параметров
+
+// Направление движения и остановка (в зависимости от реверса).
+void calc_move(void)
+{
+    if (direction == 0) {
+        if (forw_turns > forw_turns_old)
+            if (settings.revers == 0)
+                move = m_forward;
+            else
+                move = m_back;
+        else if (forw_turns == forw_turns_old)
+            move = m_stop;
+    }
+    else
+    {
+        if (back_turns > back_turns_old)
+            if (settings.revers == 0)
+                move = m_back;
+            else
+                move = m_forward;
+        else if (back_turns == back_turns_old)
+            move = m_stop;
+    }
+}
+
 // -------------------------------------------------------------------------- //
 // API
 
@@ -164,6 +212,18 @@ void get_raw_params(uint32_t *f_turns, uint32_t *b_turns, uint32_t *dir)
     *dir = direction;
 }
 
+//
+void get_total(int *val)
+{
+    *val = total_turns;
+}
+
+//
+move_t get_move(void)
+{
+    return move;
+}
+
 //
 void set_raw_params(uint32_t f_turns, uint32_t b_turns, uint32_t dir)
 {
@@ -173,10 +233,11 @@ void set_raw_params(uint32_t f_turns, uint32_t b_turns, uint32_t dir)
 }
 
 // 
-void set_raw_counters(uint32_t f_turns, uint32_t b_turns)
+void set_raw_counters(uint32_t f_turns, uint32_t b_turns, int tot)
 {
     forw_turns = f_turns;
     back_turns = b_turns;
+    total_turns = tot;
 }
 
 //

+ 20 - 1
desk/modules/uart_bridge/uart_bridge.h

@@ -1,6 +1,14 @@
 #ifndef __UART_BRIDGE_H
 #define __UART_BRIDGE_H
 
+typedef enum
+{
+    m_stop = 0,
+    m_forward,
+    m_back,
+    
+} move_t;
+
 //
 void init_usart(void);
 
@@ -13,6 +21,11 @@ uint32_t get_uint_param(char* buf, uint8_t index);
 //
 void usart_bridge_rx_cb(void);
 
+// -------------------------------------------------------------------------- //
+// Расчет параметров
+
+//
+void calc_move(void);
 
 // -------------------------------------------------------------------------- //
 // API
@@ -20,11 +33,17 @@ void usart_bridge_rx_cb(void);
 //
 void get_raw_params(uint32_t *f_turns, uint32_t *b_turns, uint32_t *dir);
 
+//
+void get_total(int *val);
+
+//
+move_t get_move(void);
+
 //
 void set_raw_params(uint32_t f_turns, uint32_t b_turns, uint32_t dir);
 
 // 
-void set_raw_counters(uint32_t f_turns, uint32_t b_turns);
+void set_raw_counters(uint32_t f_turns, uint32_t b_turns, int tot);
 
 //
 void inc_raw_counters(void);

+ 1 - 1
desk/user/FreeRTOSConfig.h

@@ -70,7 +70,7 @@
 #define configMAX_PRIORITIES                     ( 12 )
 #define configMINIMAL_STACK_SIZE                 ((uint16_t)128)
 //#define configTOTAL_HEAP_SIZE                    ((size_t)(10 * 1024))
-#define configTOTAL_HEAP_SIZE                    ((size_t)(6 * 1024))
+#define configTOTAL_HEAP_SIZE                    ((size_t)(10 * 1024))
 #define configMAX_TASK_NAME_LEN                  ( 16 )
 #define configUSE_TRACE_FACILITY                 1
 #define configUSE_16_BIT_TICKS                   0

BIN
output/desk.bin


+ 216 - 217
output/robot.bin

@@ -1,16 +1,16 @@
 S0220000726F626F742F2E2E2F2E2E2F2E2E2F6F75747075742F726F626F742E62696E7A
-S31508000000E0050020A540000881400008834000085C
+S31508000000E0050020A14000087D4000087F40000868
 S3150800001000000000000000000000000000000000D2
-S3150800002000000000000000000000000087400008F3
-S315080000300000000000000000894000088B4000080E
+S3150800002000000000000000000000000083400008F7
+S315080000300000000000000000854000088740000816
 S31508000040BB10000800000000D31000087312000857
 S31508000050771700080B1800080F180008131800086F
-S3150800006000000000B13A000857270008AF3400081E
-S315080000709B360008EB3600083F36000800000000F3
-S31508000080933E00080000000000000000274000081A
-S31508000090000000003340000893400008C5400008EF
-S315080000A0C7400008C9400008CB400008CD400008FA
-S315080000B0A73A000800000000000000000000000049
+S3150800006000000000B53A000857270008AF3400081A
+S315080000709F360008EF3600084536000800000000E5
+S31508000080973E00080000000000000000DD3E000862
+S3150800009000000000234000082F4000088F40000899
+S315080000A0C1400008C3400008C5400008C740000812
+S315080000B0AB3A000800000000000000000000000045
 S315080000C00100202008437047FDB5B2B03A98049164
 S315080000D002A93B22885400200D9027A8401C319085
 S315080000E00DE00498329A90470490002801D100F058
@@ -48,7 +48,7 @@ S315080002D00790252000F0ADFD349800680468001DDD
 S315080002E0349908600594002C00D0C2E002A83B218E
 S315080002F0405C002800D1B6E00024E4430648784470
 S31508000300163000F0AFFE201A01D000F0C5FD00F04F
-S31508000310A2FD00BF143B0000483B0000CBCCCC0C30
+S31508000310A2FD00BF183B00004C3B0000CBCCCC0C28
 S3150800032001236A4602A9280000F072FE002801D0BF
 S3150800033000F0B2FD641EF3D13295079D18AC002D6E
 S315080003400FD0329E21780498B0470490002801D136
@@ -76,7 +76,7 @@ S3150800049000E02800089000F0DEFC34980068026846
 S315080004A0001D349908600020C0430021104002AAAC
 S315080004B003C218A80590782100F0AFFC02A83B21DA
 S315080004C0415C002908D00024E4434B487844FF30B7
-S315080004D0293016E7A83900003A21405C62286AD01C
+S315080004D0293016E7AC3900003A21405C62286AD018
 S315080004E0682819D06A2845D06C2806D071284FD0BC
 S315080004F0742831D07A2821D06FE0349801680868CA
 S31508000500091D349A116000287AD10024E4433B4837
@@ -94,7 +94,7 @@ S315080005B003C200F050FC349801680868091D349A93
 S315080005C01160002805D10024E4430C4878442C30F7
 S315080005D097E60D99017000F03EFC349801680868AA
 S315080005E0091D349A116000280AD10024E4430348FF
-S315080005F07844083085E600BF383800004C380000DB
+S315080005F07844083085E600BF3C38000050380000D3
 S315080006000D99016000F027FC34980068C21D072088
 S3150800061082433498026003CA349B1A6002AA03C252
 S315080006202022C80F04D007982D2118AA11540DE0CE
@@ -116,7 +116,7 @@ S3150800071030210170811C059169460978612905D146
 S31508000720782104E00D4979443231DCE758214170DB
 S315080007300798801C079002A803C894A20CCA024016
 S315080007400B400DD1002A0BD10024002669E100BF19
-S315080007503437000038370000283700002C370000EF
+S31508000750383700003C3700002C37000030370000DF
 S3150800076068464078612800D097E00E98002801D5A1
 S31508000770212000E0401C1390139F7F1C16A803C875
 S315080007800022002300F0E2FC02A830C802D2802032
@@ -165,7 +165,7 @@ S31508000A20019E1395684600786946887000F0A4FE12
 S31508000A30406A0078694608700E9D20B2002804DCDA
 S31508000A40149C0748784418301390684640786628FE
 S31508000A500CD1761C24E000BF97750000A086010023
-S31508000A60303400000000F03F84D79741684640784C
+S31508000A60343400000000F03F84D797416846407848
 S31508000A70672846D130B20321C943884247DBA842DA
 S31508000A8045DA761C02A8008F1299C0B2084203D133
 S31508000A9020B2A84200DC050030B22D1A00D5002588
@@ -375,7 +375,7 @@ S31508001740641E6F12BF0DE41B0BDBFF19BC4211DAD6
 S31508001750240500274208AE41784161416646314377
 S31508001760F0BD641C05D1401C6141CF0201D3490874
 S31508001770F4E750E75DE7FEE7014870470000000020
-S315080017801000002012422DD0994231D970B500259B
+S315080017800800002012422DD0994231D970B50025A3
 S315080017901B4209D00C00002112E01100FFF771FE70
 S315080017A00A000021002370BD0942F6D00024012654
 S315080017B049186441944200D3A41A7641F8D33100FB
@@ -520,7 +520,7 @@ S315080020501080012181F3108829688968012291433B
 S315080020602A68916080F3108820208C21685084208B
 S315080020702C54032009E02020882168508C216850C0
 S31508002080EC662C6784202C54002076BD0024F400CE
-S3150800209050400008F0FF0000FF7FFFFFFFFFFDFF35
+S315080020904C400008F0FF0000FF7FFFFFFFFFFDFF39
 S315080020A0FFFFFEFFFFFFFBFFFFEFFFFFFFDFFFFF67
 S315080020B0FFFFEFFFFFFF9FFFFEB504000F00089D1F
 S315080020C02068C0693840B84201D1012000E00020EC
@@ -696,7 +696,7 @@ S31508002B5055D100F0BBF9401B0328F6D303204FE0FC
 S31508002B6004100240FF80FFFF8D4E30688D490140FA
 S31508002B70316000F0ABF90500306880010ED500F031
 S31508002B80A5F9401B0328F7D3032039E0FFC7FFFF49
-S31508002B900024F4000C000020080000208348016887
+S31508002B900024F40004000020000000208348016897
 S31508002BA0834A0A4002602AE0E069012801D101202F
 S31508002BB026E07E480068019001988007800F216A08
 S31508002BC088421AD1019870210140606A814214D165
@@ -745,16 +745,16 @@ S31508002E60C00100E00020F6BD114800687047000068
 S31508002E700020024010B5FFF7F7FF0400FFF76CFCCF
 S31508002E801149000B04225043085CC006C00EC4401A
 S31508002E90200010BD8913000008100240FFF0FFFF54
-S31508002EA0601002405C100240FF8FFFFFE43E0008FE
-S31508002EB00C00002008000020001002400024F40046
-S31508002EC000127A000C100240DC3F00080148006836
+S31508002EA0601002405C100240FF8FFFFFE03E000802
+S31508002EB00400002000000020001002400024F40056
+S31508002EC000127A000C100240D83F0008014800683A
 S31508002ED0704700BFD40100207047704738B5050019
 S31508002EE000241449087800281ED0FA2080000978A2
 S31508002EF0FEF7C7FA010010480068FEF7C2FA00F0AC
 S31508002F009BF800280DD1042D08D2002229000020A4
 S31508002F10C04300F080F80948056007E00120040076
 S31508002F2004E00120040001E0012004002000C0B2F2
-S31508002F3032BD00BF4A0000200C0000200800002017
+S31508002F3032BD00BF41000020040000200000002030
 S31508002F4000B5010049B2002905D40121C206D20EF6
 S31508002F5091403C4A116000BDF0B5020052B2002A09
 S31508002F601CD40322384B040064B2A40804256C431D
@@ -808,28 +808,28 @@ S31508003250006801210143206801600020F2BDF8B52D
 S3150800326004002068C06800902068076902252F427C
 S315080032701BD000982840002817D00220C043216898
 S31508003280086101202077206880698007800F002860
-S3150800329003D0200000F086F905E0200000F0F6F9DA
-S315080032A0200000F0F4F900202077042637421BD0CE
+S3150800329003D0200000F086F905E0200000F0F8F9D8
+S315080032A0200000F0F6F900202077042637421BD0CC
 S315080032B000983040002817D00420C04321680861D0
 S315080032C0257720688069C02189000140002903D03C
-S315080032D0200000F067F905E0200000F0D7F920008B
-S315080032E000F0D5F90020207708252F421AD000983B
+S315080032D0200000F067F905E0200000F0D9F9200089
+S315080032E000F0D7F90020207708252F421AD0009839
 S315080032F02840002816D00820C04321680861267790
 S315080033002068C0698007800F002803D0200000F0DD
-S3150800331049F905E0200000F0B9F9200000F0B7F9F6
+S3150800331049F905E0200000F0BBF9200000F0B9F9F2
 S3150800332000202077102007421BD00099084000286B
 S3150800333017D01020C0432168086125772068C06926
 S31508003340C02189000140002903D0200000F02AF995
-S3150800335005E0200000F09AF9200000F098F9002016
+S3150800335005E0200000F09CF9200000F09AF9002012
 S315080033602077012007420AD000990840002806D095
-S315080033700120C04321680861200000F089F98220F5
+S315080033700120C04321680861200000F08BF98220F3
 S3150800338080013840002808D00098000605D517485F
-S3150800339021680861200000F07CF9F80508D5009836
-S315080033A0000605D5124821680861200000F072F968
+S3150800339021680861200000F07EF9F80508D5009834
+S315080033A0000605D5124821680861200000F074F966
 S315080033B0402007420AD000990840002806D040203D
-S315080033C0C04321680861200000F065F92020074203
+S315080033C0C04321680861200000F067F92020074201
 S315080033D00AD000990840002806D02020C04321685A
-S315080033E00861200000F058F9F1BD00007FDFFFFFFB
+S315080033E00861200000F05AF9F1BD00007FDFFFFFF9
 S315080033F0FFFEFFFF10B502681D4CA04202D01D4B10
 S31508003400984204D170239A4313004A681A43A0428B
 S315080034100BD0184B984208D0174B984205D0174B3B
@@ -843,198 +843,197 @@ S31508003480FFFCFFFF0048014070B41F2401230D0014
 S315080034902540AB40056A9D430562056A0E00344027
 S315080034A01600A6402E43066270BC70477047FEE7BA
 S315080034B030B58DB024210024220004AD280000F088
-S315080034C0EDF80C21220001AD280000F0E7F8802075
-S315080034D000015D490A6802430A60096808400090CD
-S315080034E0009800F02DF8594D594828606C60AC607A
-S315080034F05848E8602C616C61AC6101200490059421
+S315080034C0EFF80C21220001AD280000F0E9F8802071
+S315080034D000015F490A6802430A60096808400090CB
+S315080034E0009800F02DF85B4D5B4828606C60AC6076
+S315080034F05A48E8602C616C61AC610120049005941F
 S3150800350006900794089409940A900B940C9404A9BD
 S315080035102800FFF7A3FD01940294039401A928004B
-S3150800352000F0E4F8002206210E20FFF774FD0E20B5
+S3150800352000F0E6F8002206210E20FFF774FD0E20B3
 S31508003530FFF77BFD00212800FFF7FAFD0DB030BD2F
 S3150800354070B586B01421002632006C46200000F0C3
-S31508003550A5F801244048016821430160016821401B
+S31508003550A7F8012442480168214301600168214017
 S3150800356005910599022501682943016000682840EC
 S3150800357005900598802040000090019502960396D4
-S3150800358004956946A020C00500F0ECF808200090D4
-S3150800359001950296039604946946304800F0E2F8CD
+S3150800358004956946A020C00500F0EEF808200090D2
+S3150800359001950296039604946946324800F0E4F8C9
 S315080035A006B070BD10B501680968C90612D50121B3
-S315080035B02B4A11702B490A68521C0A600A68802334
-S315080035C0DB009A4218D300220A6027490A68521C6F
-S315080035D00A6011E000210A00214B1A70234A136879
+S315080035B02D4A11702D490A68521C0A600A68802330
+S315080035C0DB009A4218D300220A6029490A68521C6D
+S315080035D00A6011E000210A00234B1A70254A136875
 S315080035E05B1C136013688024E400A34204D31160B3
-S315080035F01F490A68521C0A601E4909780029FBD02F
-S3150800360010BD1CB51B4C002020701B48007800908C
-S315080036101A4803681A4802681A491B4800F0A8F9AC
-S315080036200120207013BD10B5FFF7EBFF164C2000E4
-S31508003630FDF73CFD0100200000F03FFA10BD80B503
-S315080036400248FFF70CFE01BD401002403C01002075
-S31508003650002C0140FFFF0000341002400004005017
-S31508003660DC010020C8010020D0010020C401002090
-S31508003670CC0100204900002048000020040000205A
-S315080036800000002094400008880100207047704719
-S3150800369070477047704770477047FEE71206130A6F
-S315080036A01A43130C1A4300BF094205D0830705D0F5
-S315080036B00270401C491EF9D17047000013001039EA
-S315080036C006D330B41400150010393CC0FCD230BC07
-S315080036D0490700D30CC000D504C0890002D3028074
-S315080036E0801C002900D502707047FEE770B50200FD
-S315080036F03C20105C012801D102202BE001253C204A
-S31508003700155402203D23D0541068406813689C68FD
-S31508003710114E1368B34203D1104B0340486818434F
-S31508003720702398430B680343106843601068B042DF
-S3150800373003D010680A4EB04206D180208443200088
-S315080037408C680443106884603D20155400203C258D
-S315080037505055002070BD0000002C0140FFFF0FFFF0
-S3150800376000040040F1B582B000230868D84000285C
-S3150800377000D1EBE0012508682C009C400440019428
-S315080037800198002800D1DFE0032648683040012868
-S3150800379003D04868304002281ED1029887681C006A
-S315080037A0022044433000A0408743C86884461C0072
-S315080037B0022044436046A0403843029CA060029C15
-S315080037C067682C009C40A7434C6824092C409C4001
-S315080037D03C432200029C626048683040032812D0AD
-S315080037E00298C7681C00022044433000A040874363
-S315080037F0886884461C00022044436046A04038433B
-S3150800380002000298C26048683040022821D1029816
-S31508003810DC0804277C430019076A072000970F2451
-S31508003820A4461F000740042467436446BC40009F23
-S31508003830A743BC460F691C00204004246043874008
-S31508003840604607433A000298DC0804277C430019BF
-S315080038500262029807681C00022044433000A04018
-S3150800386087434868304084461C000220444360462B
-S31508003870A04038430200029802604868C024A402A7
-S315080038800440002C60D0324C98080427784320580E
-S3150800389000900F27BC461F003000384008277843A1
-S315080038A0674687400098B84300900298A027FF050E
-S315080038B0B84201D1002510E00298264A90420CD061
-S315080038C00298254A904201D1022506E00298234A29
-S315080038D0904201D1350000E0052500981A001640EF
-S315080038E008225643B54005439808042250432550FC
-S315080038F01B4A1068019CA0434C68E40202D50400E8
-S31508003900019820431060174C2268019DAA434D6810
-S31508003910AD0202D51000019A02432260124C2068BB
-S31508003920019DA8434D68AD0302D5020001981043D6
-S3150800393020600E4C2268019DAA434D68ED0302D50E
-S315080039401000019A024322605B1C0EE7F7BD0000D7
-S31508003950601802400004005000080050000C005097
-S3150800396000180240041802408418024080180240D9
-S315080039700CB418B583B004000A0006A80290019496
-S315080039800020009002AB01A9084878441E30FCF7D5
-S315080039909BFB0021019A1170002801D40198001B95
-S315080039A004B0019910BC03B0084700BF9BD6FFFFBF
-S315080039B038B586B0142100252A0001AC2000FFF78F
-S315080039C06DFE012042490A6802430A6009680140FF
-S315080039D000910099802189023E4A13680B431360BF
-S315080039E012681140009100990E210191022102915D
-S315080039F0039003210491059001A9A020C005FFF7B3
-S31508003A00B1FE354C35482060E12040026060A56073
-S31508003A10E56025610C206061A561E56125622000ED
-S31508003A20FDF702FF002300220021200000F05EF8C7
-S31508003A300021200000F0C8F8200000F0A2F800F0ED
-S31508003A400AF8002206211C20FFF7E5FA1C20FFF7DA
-S31508003A50ECFA07B030BD1CB5012021490A680243BB
-S31508003A600A6009680840009000981E4C1E482060AD
-S31508003A70352060601020A0600020E0608021216170
-S31508003A806061A061E06120622000FEF73FFC1248F9
-S31508003A90C467A062002206210920FFF7BCFA0920A4
-S31508003AA0FFF7C3FA13BD80B50B48FDF763FF01BDE9
-S31508003AB080B50C48FEF772FD01BD38B505000C004F
-S31508003AC0220092B229000448FDF7F0FE31BD00003D
-S31508003AD0341002403C1002404C00002000440040D4
-S31508003AE038100240E000002008000240F2B5040049
-S31508003AF017001D00002C01D1012041E08820205824
-S31508003B00002805D10020842160542000FEF7FDFB23
-S31508003B102420882160502068006801218843216894
-S31508003B200860A06A002802D02000FEF7CCF9200021
-S31508003B30FEF7E6F8012801D1012021E02068806817
-S31508003B408021C90101432068816020688068344962
-S31508003B500140009808432168886078052E040643CA
-S31508003B60206800682F4901403143206801602068B9
-S31508003B70006801210143206801602000FEF720FA51
-S31508003B80F2BD10B501008420085C012801D102208D
-S31508003B9019E0012084228854242088228850086845
-S31508003BA000680A68126801239A430B681A601E4A5D
-S31508003BB00240002048660B681A60202388240B51AF
-S31508003BC08423C854002010BD70B505000C0084205D
-S31508003BD0285C012801D1022020E0012084216854B4
-S31508003BE0242088216850286806682868006801210A
-S31508003BF088432968086028688068C000C008204390
-S31508003C0029688860280000F011F8286806602020D6
-S31508003C1088216850002084216854002070BD000067
-S31508003C20FF7FFFFFFFFF00FCFFFFFFDFF8B5040083
-S31508003C30606E002805D101206A2160526821605211
-S31508003C402CE0082001006A46917069464870206891
-S31508003C508068400E4007400F6946087020688068F3
-S31508003C60400F05000E4E0F4F684640782900C9B22E
-S31508003C70795C48432900C9B2715CFDF7FFFB6A21EC
-S31508003C8060526846807869460978795C484369468F
-S31508003C900978715CFDF7F2FB68216052F1BD0000FE
-S31508003CA0BC400008B440000880B500F049F800F0B0
-S31508003CB00AF8FFF77DFEFFF7FBFBFFF7B4FC64206D
-S31508003CC000F056F8F9E730B591B03421002204A87F
-S31508003CD0FFF7E4FC102100226846FFF7DFFC80208E
-S31508003CE0800000F05BF802240494802040000790CE
-S31508003CF000250895402009900B940C940D951020EA
-S31508003D000E90802080020F90C020C005109004A855
-S31508003D10FEF72AFD002801D000F00FF807200090D2
-S31508003D2001940295039502216846FEF77BFF002859
-S31508003D3001D000F002F811B030BD00B572B6FEE74A
-S31508003D4010B5002409480168802252000A4302601F
-S31508003D500020FFF7C3F8002802D00120040001E084
-S31508003D6000F048F82000C0B210BD00000020024054
-S31508003D7070B50400FFF7AAF8050026000020C04326
-S31508003D80864202D0044800783618FFF79FF8401B91
-S31508003D90B042FAD370BD00BF4A00002030B5040017
-S31508003DA00F4801680F4A0A402243026080208000BB
-S31508003DB0844212D10C480068062148430B49FDF796
-S31508003DC060FB401C05000A480068400505D5002D23
-S31508003DD001D06D1EF7E7032000E0002030BD00008B
-S31508003DE000700040FFF9FFFF0C00002040420F0062
-S31508003DF01470004081B0012009490A6802430A602C
-S31508003E0009680840009000988020400505490A681E
-S31508003E1002430A60096808400090009801B070479C
-S31508003E20401002403C100240686A6C747A4C0000EC
-S31508003E307072696E74665F733A20256E20646973C2
-S31508003E40616C6C6F776564007072696E74663A208F
-S31508003E5062616420256E20617267756D656E7400F7
-S31508003E607072696E74665F733A20626164202573A6
-S31508003E7020617267756D656E7400000000000000B1
-S31508003E806E616E004E414E00696E6600494E4600F0
-S31508003E903000FEE715CD5B07B168DE3A0400000086
-S31508003EA00024F400CE400008CE400008CE400008AA
-S31508003EB0CE400008CE400008CE400008CE4000089C
-S31508003EC0FFFFFFFFFFFFFFFF62100008CE4000085C
-S31508003ED0CE400008FFFFFFFFFFFF000001010100C1
+S315080035F021490A68521C0A601B4909781F4A11703A
+S315080036001D4909681E4A1160194909681D4A116051
+S3150800361010BD80B51948007800901A480368184804
+S3150800362002681949194800F0A5F901BD10B5FFF758
+S31508003630F0FF164C2000FDF739FD0100200000F0D0
+S315080036403EFA10BD80B50348FFF709FE01BD00002C
+S315080036504010024034010020002C0140FFFF00000A
+S315080036603410024000040050DC010020C001002094
+S31508003670C8010020BC010020C40100204000002031
+S31508003680CC010020D00100209040000880010020D5
+S315080036907047704770477047704770477047FEE736
+S315080036A01206130A1A43130C1A4300BF094205D01F
+S315080036B0830705D00270401C491EF9D170470000E7
+S315080036C01300103906D330B41400150010393CC065
+S315080036D0FCD230BC490700D30CC000D504C0890011
+S315080036E002D30280801C002900D502707047FEE7CD
+S315080036F070B502003C20105C012801D102202BE0A5
+S3150800370001253C20155402203D23D05410684068FA
+S3150800371013689C68114E1368B34203D1104B0340DB
+S3150800372048681843702398430B680343106843603E
+S315080037301068B04203D010680A4EB04206D1802005
+S31508003740844320008C680443106884603D20155427
+S3150800375000203C255055002070BD0000002C01407B
+S31508003760FFFF0FFF00040040F1B582B00023086890
+S31508003770D840002800D1EBE0012508682C009C40C1
+S31508003780044001940198002800D1DFE00326486828
+S315080037903040012803D04868304002281ED10298DC
+S315080037A087681C00022044433000A0408743C8684D
+S315080037B084461C00022044436046A0403843029CCD
+S315080037C0A060029C67682C009C40A7434C682409AB
+S315080037D02C409C403C432200029C62604868304072
+S315080037E0032812D00298C7681C0002204443300000
+S315080037F0A0408743886884461C00022044436046EC
+S31508003800A040384302000298C26048683040022847
+S3150800381021D10298DC0804277C430019076A07208F
+S3150800382000970F24A4461F000740042467436446F4
+S31508003830BC40009FA743BC460F691C0020400424D7
+S3150800384060438740604607433A000298DC0804272D
+S315080038507C4300190262029807681C000220444350
+S315080038603000A04087434868304084461C00022048
+S3150800387044436046A0403843020002980260486804
+S31508003880C024A4020440002C60D0324C98080427B7
+S315080038907843205800900F27BC461F003000384058
+S315080038A008277843674687400098B84300900298EF
+S315080038B0A027FF05B84201D1002510E00298264A44
+S315080038C090420CD00298254A904201D1022506E082
+S315080038D00298234A904201D1350000E00525009858
+S315080038E01A00164008225643B54005439808042294
+S315080038F0504325501B4A1068019CA0434C68E402BB
+S3150800390002D50400019820431060174C2268019DD7
+S31508003910AA434D68AD0202D51000019A02432260FF
+S31508003920124C2068019DA8434D68AD0302D50200DC
+S315080039300198104320600E4C2268019DAA434D68E9
+S31508003940ED0302D51000019A024322605B1C0EE7C4
+S31508003950F7BD00006018024000040050000800503F
+S31508003960000C005000180240041802408418024057
+S31508003970801802400CB418B583B004000A0006A8E3
+S31508003980029001940020009002AB01A908487844EF
+S315080039901E30FCF799FB0021019A1170002801D40A
+S315080039A00198001B04B0019910BC03B0084700BF7A
+S315080039B097D6FFFF38B586B0142100252A0001AC3A
+S315080039C02000FFF76DFE012042490A6802430A609B
+S315080039D00968014000910099802189023E4A1368CE
+S315080039E00B43136012681140009100990E21019152
+S315080039F002210291039003210491059001A9A020B8
+S31508003A00C005FFF7B1FE354C35482060E12040027D
+S31508003A106060A560E56025610C206061A561E561CF
+S31508003A2025622000FDF700FF002300220021200068
+S31508003A3000F05EF80021200000F0C8F8200000F031
+S31508003A40A2F800F00AF8002206211C20FFF7E3FA84
+S31508003A501C20FFF7EAFA07B030BD1CB50120214942
+S31508003A600A6802430A6009680840009000981E4CDC
+S31508003A701E482060352060601020A0600020E060AD
+S31508003A80802121616061A061E06120622000FEF76B
+S31508003A903DFC1248C467A062002206210920FFF7F0
+S31508003AA0BAFA0920FFF7C1FA13BD80B50B48FDF72E
+S31508003AB061FF01BD80B50C48FEF770FD01BD38B544
+S31508003AC005000C00220092B229000448FDF7EEFE1C
+S31508003AD031BD0000341002403C1002404400002072
+S31508003AE00044004038100240D80000200800024078
+S31508003AF0F2B5040017001D00002C01D1012041E099
+S31508003B0088202058002805D10020842160542000F0
+S31508003B10FEF7FBFB242088216050206800680121FD
+S31508003B20884321680860A06A002802D02000FEF7B2
+S31508003B30CAF92000FEF7E4F8012801D1012021E0A6
+S31508003B40206880688021C901014320688160206857
+S31508003B5080683449014000980843216888607805E0
+S31508003B602E040643206800682F4901403143206827
+S31508003B700160206800680121014320680160200077
+S31508003B80FEF71EFAF2BD10B501008420085C012874
+S31508003B9001D1022019E00120842288542420882299
+S31508003BA08850086800680A68126801239A430B68F7
+S31508003BB01A601E4A0240002048660B681A602023D5
+S31508003BC088240B518423C854002010BD70B5050005
+S31508003BD00C008420285C012801D1022020E0012065
+S31508003BE08421685424208821685028680668286833
+S31508003BF00068012188432968086028688068C00031
+S31508003C00C008204329688860280000F011F8286851
+S31508003C1006602020882168500020842168540020EE
+S31508003C2070BD0000FF7FFFFFFFFF00FCFFFFFFDF07
+S31508003C30F8B50400606E002805D101206A2160529B
+S31508003C40682160522CE0082001006A469170694696
+S31508003C50487020688068400E4007400F6946087023
+S31508003C6020688068400F05000E4E0F4F6846407862
+S31508003C702900C9B2795C48432900C9B2715CFDF7CD
+S31508003C80FDFB6A2160526846807869460978795C46
+S31508003C90484369460978715CFDF7F0FB6821605274
+S31508003CA0F1BD0000B8400008B040000880B500F03B
+S31508003CB049F800F00AF8FFF77DFEFFF7F9FBFFF772
+S31508003CC0B5FC642000F056F8F9E730B591B0342118
+S31508003CD0002204A8FFF7E4FC102100226846FFF73B
+S31508003CE0DFFC8020800000F05BF80224049480202A
+S31508003CF04000079000250895402009900B940C94E5
+S31508003D000D9510200E90802080020F90C020C005CF
+S31508003D10109004A8FEF728FD002801D000F00FF83F
+S31508003D200720009001940295039502216846FEF744
+S31508003D3079FF002801D000F002F811B030BD00B5B7
+S31508003D4072B6FEE710B500240948016880225200C1
+S31508003D500A4302600020FFF7C1F8002802D00120BC
+S31508003D60040001E000F048F82000C0B210BD0000D1
+S31508003D700020024070B50400FFF7A8F805002600E9
+S31508003D800020C043864202D0044800783618FFF760
+S31508003D909DF8401BB042FAD370BD00BF4100002019
+S31508003DA030B504000F4801680F4A0A4022430260F2
+S31508003DB080208000844212D10C48006806214843BE
+S31508003DC00B49FDF75EFB401C05000A4800684005E4
+S31508003DD005D5002D01D06D1EF7E7032000E0002071
+S31508003DE030BD000000700040FFF9FFFF040000200E
+S31508003DF040420F001470004081B0012009490A684A
+S31508003E0002430A600968084000900098802040052F
+S31508003E1005490A6802430A60096808400090009844
+S31508003E2001B07047401002403C100240686A6C744A
+S31508003E307A4C00007072696E74665F733A20256E5C
+S31508003E4020646973616C6C6F776564007072696E63
+S31508003E5074663A2062616420256E20617267756D0A
+S31508003E60656E74007072696E74665F733A2062617B
+S31508003E706420257320617267756D656E7400000095
+S31508003E80000000006E616E004E414E00696E6600CD
+S31508003E90494E46003000FEE7040000000024F40006
+S31508003EA0CB400008CB400008CB400008CB400008B8
+S31508003EB0CB400008CB400008CB400008FFFFFFFFBF
+S31508003EC0FFFFFFFF62100008CB400008CB40000848
+S31508003ED0FFFFFFFFFFFF000001010000FEE70000F3
 S31508003EE000000000000000000000000000000000C4
 S31508003EF000000000000000000000000000000000B4
-S31508003F00000000000100000002000000030000009D
-S31508003F10040000000600000007000000080000007A
-S31508003F200900000070B40121002213E00368001D97
-S31508003F300B4202D04D46EB185B1E1A601B1D241F50
-S31508003F40042CFAD21D00A60701D51A80AD1C0C4018
-S31508003F5000D02A700468001D002CE7D170BC704799
-S31508003F6030B401210EE00368C318446808300C42D7
-S31508003F7002D04D462C19641E1D6825601B1D241D84
-S31508003F80121FF9D10268001D002AECD130BC704717
-S31508003F9010B5074979441831064C7C44163404E0B8
-S31508003FA0081D0A68891888470100A142F8D110BD82
-S31508003FB008000000280000006DFFFFFF94010000C4
-S31508003FC04C0000200000000099FFFFFF4C00000095
-S31508003FD0C4FEFFFF000000200000000000000000F3
-S31508003FE000000000000000000000000001000000C2
-S31508003FF002000000030000000400000000F00DF8B5
-S31508004000002801D0FFF7C4FF00BF00BF002000BF93
-S3150800401000BFFFF749FE00F002F80120704780B59F
-S3150800402000F002F801BDFEE707463846FDF7F2FB49
-S31508004030FBE7FEE70548014603B4684680F30988AE
-S3150800404000BF00BF00BF00BFFFF7D8FFA5EDF5FE14
-S31508004050010002000400060008000A000C00100017
-S31508004060200040008000000103480168034A1278D6
-S3150800407089180160704700BFD40100204A0000205B
-S31508004080704700B5FEE77047704780B5FFF7ECFF4D
-S3150800409001BDFEE77B25752C25752C25752C7D0A1B
-S315080040A0000000000148804701480047D140000849
-S315080040B03540000801010103070100000804020455
-S315080040C008010101FEE7FEE7FEE7FEE7FEE700005E
-S307080040D0704729
-S705080040357D
+S31508003F000100000002000000030000000400000099
+S31508003F100600000007000000080000000900000075
+S31508003F2070B40121002213E00368001D0B4202D081
+S31508003F304D46EB185B1E1A601B1D241F042CFAD273
+S31508003F401D00A60701D51A80AD1C0C4000D02A70AA
+S31508003F500468001D002CE7D170BC704730B40121FD
+S31508003F600EE00368C318446808300C4202D04D4678
+S31508003F702C19641E1D6825601B1D241D121FF9D1EE
+S31508003F800268001D002AECD130BC704710B50749FD
+S31508003F9079441831064C7C44163404E0081D0A6836
+S31508003FA0891888470100A142F8D110BD0800000011
+S31508003FB0280000006DFFFFFF9C0100004400002060
+S31508003FC00000000099FFFFFF44000000CCFEFFFF41
+S31508003FD000000020000000000000000000000000B3
+S31508003FE000000000000000000100000002000000C0
+S31508003FF0030000000400000000F00DF8002801D0BE
+S31508004000FFF7C4FF00BF00BF002000BF00BFFFF7D7
+S315080040104DFE00F002F80120704780B500F002F866
+S3150800402001BDFEE707463846FDF7F4FBFBE7FEE76A
+S315080040300548014603B4684680F3098800BF00BFF7
+S3150800404000BF00BFFFF7D8FFA5EDF5FE010002008F
+S315080040500400060008000A000C00100020004000BA
+S315080040608000000103480168034A12788918016034
+S31508004070704700BFD401002041000020704700B5FA
+S31508004080FEE77047704780B5FFF7ECFF01BDFEE716
+S315080040907B25752C25752C25752C7D0A00000000BE
+S315080040A00148804701480047C940000831400008D8
+S315080040B001010103070100000804020408010101C7
+S311080040C0FEE7FEE7FEE7FEE7704700009B
+S7050800403181

+ 1 - 1
project/ewarm/robot/stm32g030xx_flash.icf

@@ -10,7 +10,7 @@ define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
 define symbol __ICFEDIT_region_RAM_end__   = 0x20001FFF;
 /*-Sizes-*/
 define symbol __ICFEDIT_size_cstack__ = 0x400;
-define symbol __ICFEDIT_size_heap__   = 0x100;
+define symbol __ICFEDIT_size_heap__   = 0x200;
 /**** End of ICF editor section. ###ICF###*/
 
 define memory mem with size = 4G;

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 4 - 6
project/ewarm/settings/tuber.wsdt


+ 7 - 7
robot/modules/sc60224/encoder.cpp

@@ -21,8 +21,8 @@ uint32_t forw_turns_irq;
 uint32_t back_turns_irq;
 
 uint8_t direction = 1;
-uint32_t forw_turns = 123456789;
-uint32_t back_turns = 987654321;
+uint32_t forw_turns = 0; //123456789
+uint32_t back_turns = 0; //987654321
 
 bool access_turns = true;
 
@@ -117,21 +117,21 @@ void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
         }
     }
     
-    while (!access_turns) {}
+    //while (!access_turns) {}
 
-#if 0    
+#if 1    
     direction = direction_irq;
     forw_turns = forw_turns_irq;
-    back_turns = forw_turns_irq;
+    back_turns = back_turns_irq;
 #endif    
 }
 
 //
 static void create_data_pack_encoder(void)
 {
-    access_turns = false;
+    //access_turns = false;
     sprintf((char*)tx_buf, "{%u,%u,%u,}\n", forw_turns, back_turns, direction);
-    access_turns = true;
+    //access_turns = true;
 }
 
 //

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно