unknown 2 päivää sitten
vanhempi
commit
47aeb23d72

+ 27 - 27
.obsidian/workspace.json

@@ -8,7 +8,7 @@
         "type": "tabs",
         "children": [
           {
-            "id": "e6bea62ed1e6a115",
+            "id": "3e9f239e738f776c",
             "type": "leaf",
             "state": {
               "type": "markdown",
@@ -22,35 +22,35 @@
             }
           },
           {
-            "id": "3e9f239e738f776c",
+            "id": "ab6baf98ffde01a4",
             "type": "leaf",
             "state": {
               "type": "markdown",
               "state": {
-                "file": "hardcore web development/11. SQL/Создание таблиц.md",
+                "file": "ROTEK/allwinner 069 070.md",
                 "mode": "source",
                 "source": false
               },
               "icon": "lucide-file",
-              "title": "Создание таблиц"
+              "title": "allwinner 069 070"
             }
           },
           {
-            "id": "20423afea12470fd",
+            "id": "8e66644a45b88361",
             "type": "leaf",
             "state": {
               "type": "markdown",
               "state": {
-                "file": "printf.md",
+                "file": "c/macros.md",
                 "mode": "source",
                 "source": false
               },
               "icon": "lucide-file",
-              "title": "printf"
+              "title": "macros"
             }
           }
         ],
-        "currentTab": 1
+        "currentTab": 2
       }
     ],
     "direction": "vertical"
@@ -180,20 +180,34 @@
       "markdown-importer:Open format converter": false
     }
   },
-  "active": "3e9f239e738f776c",
+  "active": "8e66644a45b88361",
   "lastOpenFiles": [
-    "hardcore web development/11. SQL/Дата и время.md",
-    "hardcore web development/11. SQL/Типы данных.md",
     "c/c common.md",
+    "ROTEK/allwinner 069 070.md",
+    "ROTEK/bt67xx/common.md",
+    "ROTEK/bt67xx/Команды.md",
+    "c/macros.md",
+    "English/img/34-10.jpg",
+    "English/img/34-9.jpg",
+    "English/img/34-8.jpg",
+    "English/img/34-7.jpg",
+    "English/img/34-6.jpg",
+    "English/img/34-5.jpg",
+    "English/img/34-4.jpg",
+    "English/img/34-3.jpg",
+    "English/img/34-2.jpg",
+    "English/img/34-1.jpg",
+    "proGit.md",
     "printf.md",
+    "hardcore web development/11. SQL/Создание таблиц.md",
+    "hardcore web development/11. SQL/Дата и время.md",
+    "hardcore web development/11. SQL/Типы данных.md",
     "hardcore web development/11. SQL/SQL настройка.md",
     "hardcore web development/11. SQL/Комментарии.md",
     "c/syscalls.md",
     "c/GDB.md",
     "ASM/asm_x64.md",
-    "ROTEK/bt67xx/common.md",
     "ROTEK/BT_6714.md",
-    "ROTEK/allwinner 069 070.md",
     "Greenstar/ethernet stm32.md",
     "todo/Счета.md",
     "ASM/Компоновщик.md",
@@ -204,29 +218,15 @@
     "English/words.md",
     "todo/Задачи по направлениям.md",
     "ROTEK/Artery testing.md",
-    "ROTEK/Arbiter, artery.md",
     "docs/Galleon.pdf",
     "docs/~$alleon.doc",
     "docs/Galleon.doc",
     "docs/megatec 单相协议 new.pdf",
     "docs/!Galleon(1).doc",
-    "ROTEK/bt67xx/Команды.md",
     "Untitled.canvas",
-    "hardcore web development/11. SQL/Создание таблиц.md",
-    "todo/common.md",
     "hardcore web development/11. SQL/quiz_1.sql",
-    "English/img/33-5.jpg",
-    "English/img/33-4.jpg",
-    "English/img/33-3.jpg",
-    "English/img/33-2.jpg",
-    "English/img/33-1.jpg",
     "hardcore web development/11. SQL/room_1.sql",
     "hardcore web development/11. SQL/bird_1.sql",
-    "English/img/32-5.jpg",
-    "English/img/32-4.jpg",
-    "English/img/32-3.jpg",
-    "English/img/32-2.jpg",
-    "English/img/32-1.jpg",
     "ASM",
     "STM32/Makefile_template.txt"
   ]

BIN
English/img/34-1.jpg


BIN
English/img/34-10.jpg


BIN
English/img/34-2.jpg


BIN
English/img/34-3.jpg


BIN
English/img/34-4.jpg


BIN
English/img/34-5.jpg


BIN
English/img/34-6.jpg


BIN
English/img/34-7.jpg


BIN
English/img/34-8.jpg


BIN
English/img/34-9.jpg


+ 9 - 1
ROTEK/allwinner 069 070.md

@@ -219,4 +219,12 @@ uart2, uart3, uart5
 
 ~={yellow}Проблема со Standby mode.=~
 - When the Standby mode is being entered, the pull-down resistor of PA0 pin is automatically enabled by internal control circuitry of the chip. The reason of this is to avoid current leakage caused by pin floating.
-- 
+
+~={green}Логика работы, связанная со standby mode=~
+
+**Важно.** 
+При отсутствии внешнего питания 220В контроллер не может достоверно установить факт наличия внешнего питания. Поэтому предлагает следующая логика:
+
+Контроллер перезагружается или включается по питанию.
+- Контроллер проверяет флаг PWC_STANDBY_FLAG. Если флаг не установлен контроллер продолжает загрузку в обычном режиме. Значит произошла перезагрузка или включение по питанию.
+- Флаг PWC_STANDBY_FLAG установлен - контроллер находился в режиме standby. Происходит настройка счетных входов и анализ их состояний. Если на каком либо из счетных входов 1, то считаем, что контроллер проснулся от счетных входов и внешнего питания нет. Контроллер сохраняет значения счетных входов и засыпает. Если на счетных входах уровня нет, то считаем, что факт наличия питания установить можно. Проверяем питание. Если питания нет, контроллер засыпает. Если питание есть, то контроллер загружается в обычном режиме.

+ 6 - 2
c/c common.md

@@ -1,11 +1,15 @@
+~={green}Некоторые базовые понятия=~
+
+**Единица трансляции** (единица компиляции) - код на языке С, который прошел через препроцессор и готов к компиляции. 
+
 <h6>Стадии компиляции</h6>
-- Препроцессорная (предварительная) обработка или препроцессор. На этом этапе выполняются директивы препроцессора. При этом директивы удаляются.
+- Препроцессорная (предварительная) обработка или препроцессор. На этом этапе выполняются директивы препроцессора. При этом директивы удаляются. Задача препроцессора - заменить специальные директивы подходящим кодом на С и подготовить исходники к компиляции.
 ```bash
 # Выполнить только препроцессорную обработку
 $ gcc main.c -E main_.c
 ```
 
-- Преобразование исходного кода на языке с в ассемблерный код или. 
+- Преобразование исходного кода на языке с в ассемблерный код. 
 ```bash
 # Это команда выполняет и препроцессорную обработку
 $ gcc -S main_.c -o main.s

+ 44 - 0
c/macros.md

@@ -0,0 +1,44 @@
+Макрос существуют только до компиляции . Это директива которую понимает только препроцессор. Они позволяют генерировать код перед компиляцией
+
+- определение константы
+- использование вместо обычной функции на С
+- разворачивание цикла
+- предотвращение дублирования заголовков
+- генерация кода
+- условная компиляция
+```c
+// Определение макроса
+#define 
+
+// Сделать макрос неопределенным
+#undef
+
+// Функциональный макрос
+#define ADD(a, b) a + b
+```
+~={yellow}Операторы # и ## в макросах=~
+
+- Оператор # переводит параметр в строковую форму
+- Оператор ## соединяет параметры с другими элементами макроса. Обычно для формирования имен переменных.
+```c
+#define CMD(name) \
+	char NAME ## _cmd[256] = ""; \
+	strcpy(NAME ## _cmd, #NAME);
+
+CMD(copy)
+CMD(paste)
+CMD(cut)
+
+// Макрос CMD будет развернут в ...
+char copy_cmd[256] = ""; strcpy(copy_cmd, "copy");
+char copy_cmd[256] = ""; strcpy(paste_cmd, "copy");
+char copy_cmd[256] = ""; strcpy(cut_cmd, "copy");
+```
+
+~={yellow}Макросы с переменным количеством аргументов=~
+
+```c
+#define LOG_ERROR(format, ...) \
+	fprintf(stderr, format, __VA_ARGS__)
+```
+