Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/109: Рейтинг темы: голосов - 109, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 39

stm32f4discovery скорость gpio

02.09.2013, 23:34. Показов 22538. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

начинаю осваивать stm32 на плате stm32f4discovery. Очень смущает скорость дерганья ногами.
Насколько я понял , плата по умолчанию работает на 168Мгц, стало быть, дергая ногой можно получить 84Мгц.
пишу простую программу (использую CooCox CoID)

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stm32f4xx.h>
#include <stm32f4xx_conf.h>
 
#include <stm32f4xx_rcc.h>
#include <stm32f4xx_gpio.h>
 
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 
GPIO_Init( GPIOD , &GPIO_InitStructure);
 
while(1)
{
GPIOD->ODR |= GPIO_OTYPER_ODR_9;
GPIOD->ODR &= ~GPIO_OTYPER_ODR_9;
}
}
но на ноге РD9 частотомер показывает ~715kHz.
Это нормально или я чего-то пропустил?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.09.2013, 23:34
Ответы с готовыми решениями:

Скорость GPIO
Привет! Набросал программку (контроллер STM8S103 в SOIC-20): #include &quot;libs/stm8s.h&quot; #define PORT GPIOD #define PIN 4 ...

STM32F103 низкая скорость вывода через GPIO
Всем привет. Начал осваивать STM32. Собрал CoLink, отладочную плату на STM32F103, в качестве среды разработки использую CoIDE. Сделав...

Qt + gpio
Всем привет, я на Raspberry Pi подключил к gpio кнопки, с них я обрабатываю сигнал, всё хорошо, у меня написано приложение на qt,змейка,...

36
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
02.09.2013, 23:40
Цитата Сообщение от dym_zh
начинаю осваивать
...
Очень смущает скорость дерганья ногами.
Типичный бред новичка.
Крутость контроллера определяется скоростью ногодрыга.
Периферия уже и на не нужна...
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 39
02.09.2013, 23:51
Ну да, новичок...
и не стыжусь, учиться не стыдно...
Крутость здесь совсем не причем, плата доступная.
А ногами подрыгать мне как раз и надо для периферии, только не той что есть на плате.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
02.09.2013, 23:54
Цитата Сообщение от dym_zh
А ногами подрыгать мне как раз и надо для периферии, только не той что есть на плате.
Что за периферия, такая ради которой нужен ногодрыг а не внутренняя периферия , али мы опять не в курсе...
0
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 701
02.09.2013, 23:59
Два такта на сброс... два такта на установку... Максимальная последовательная скорость ногодрыга через BSRR 168МГц делённое на 4...
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 39
03.09.2013, 00:02
Спасибо за интерес проявленный ко мне.
периферия мышиный датчик adns2160.
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 39
03.09.2013, 00:05
Цитата Сообщение от dork_usir
Два такта на сброс... два такта на установку... Максимальная последовательная скорость ногодрыга через BSRR 168МГц делённое на 4...
всяко 42Мгц получается. Я понимаю, библиотечные функции и все такое, но не 700кгц же...
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
03.09.2013, 00:06
Цитата Сообщение от dym_zh
Насколько я понял , плата по умолчанию работает на 168Мгц,
Кто то вам сказал ?
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
03.09.2013, 00:14
Цитата Сообщение от dym_zh
Спасибо за интерес проявленный ко мне.
периферия мышиный датчик adns2160.
== PAN3101 где SPI 16бит ...
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
03.09.2013, 00:15
Цитата Сообщение от dym_zh
всяко 42Мгц получается. Я понимаю, библиотечные функции и все такое, но не 700кгц же...
Дизассемблер всего кода цикла while() покажите.
У Вас, кстати, чтение-модификация-запись ( |=, &=~ ), так что тактов на сишный оператор будет больше, чем два. Конечно, до 700кГц далеко... короче, давайте дизассемблер в студию.
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 39
03.09.2013, 00:17
Цитата Сообщение от dosykus_2
Цитата Сообщение от dym_zh
Насколько я понял , плата по умолчанию работает на 168Мгц,
Кто то вам сказал ?
http://www.emcu.it/STM32F4xx/E... ian_ed.pdf
25-я страница
Code
1
2
3
4
При использовании стандартной библиотеки STM32
тактовая частота настраиватся автоматически, перед
выполнением основного кода, на максимальную
частоту (168МГц) от HSE.
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 39
03.09.2013, 00:22
Цитата Сообщение от OtyxPM
Цитата Сообщение от dym_zh
всяко 42Мгц получается. Я понимаю, библиотечные функции и все такое, но не 700кгц же...
Дизассемблер всего кода цикла while() покажите.
У Вас, кстати, чтение-модификация-запись ( |=, &=~ ), так что тактов на сишный оператор будет больше, чем два. Конечно, до 700кГц далеко... короче, давайте дизассемблер в студию.
Пишу по примерам из инта
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
12            GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
0800020e:   mov.w r3, #512  ; 0x200
08000212:   str r3, [r7, #0]
13            GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
08000214:   mov.w r3, #1
08000218:   strb r3, [r7, #4]
14            GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0800021a:   mov.w r3, #2
0800021e:   strb r3, [r7, #5]
16            GPIO_Init( GPIOD , &GPIO_InitStructure);
08000220:   mov r3, r7
08000222:   mov.w r0, #3072 ; 0xc00
08000226:   movt r0, #16386 ; 0x4002
0800022a:   mov r1, r3
0800022c:   bl 0x80002b8 <GPIO_Init>
21               GPIOD->ODR |= GPIO_OTYPER_ODR_9;
08000230:   mov.w r3, #3072 ; 0xc00
08000234:   movt r3, #16386 ; 0x4002
08000238:   mov.w r2, #3072 ; 0xc00
0800023c:   movt r2, #16386 ; 0x4002
08000240:   ldr r2, [r2, #20]
08000242:   orr.w r2, r2, #512      ; 0x200
08000246:   str r2, [r3, #20]
22               GPIOD->ODR &= ~GPIO_OTYPER_ODR_9;
08000248:   mov.w r3, #3072 ; 0xc00
0800024c:   movt r3, #16386 ; 0x4002
08000250:   mov.w r2, #3072 ; 0xc00
08000254:   movt r2, #16386 ; 0x4002
08000258:   ldr r2, [r2, #20]
0800025a:   bic.w r2, r2, #512      ; 0x200
0800025e:   str r2, [r3, #20]
23            }
08000260:   b.n 0x8000230 <main+52>
08000262:   nop
RCC_AHB1PeriphClockCmd:
08000264:   push {r7}
08000266:   sub sp, #12
08000268:   add r7, sp, #0
0800026a:   str r0, [r7, #4]
0800026c:   mov r3, r1
0800026e:   strb r3, [r7, #3]
08000270:   ldrb r3, [r7, #3]
08000272:   cmp r3, #0
08000274:   beq.n 0x8000290 <RCC_AHB1PeriphClockCmd+44>
08000276:   mov.w r3, #14336        ; 0x3800
0800027a:   movt r3, #16386 ; 0x4002
0800027e:   mov.w r2, #14336        ; 0x3800
08000282:   movt r2, #16386 ; 0x4002
08000286:   ldr r1, [r2, #48]       ; 0x30
08000288:   ldr r2, [r7, #4]
0800028a:   orrs r2, r1
0800028c:   str r2, [r3, #48]       ; 0x30
0800028e:   b.n 0x80002ac <RCC_AHB1PeriphClockCmd+72>
08000290:   mov.w r3, #14336        ; 0x3800
08000294:   movt r3, #16386 ; 0x4002
08000298:   mov.w r2, #14336        ; 0x3800
0800029c:   movt r2, #16386 ; 0x4002
080002a0:   ldr r1, [r2, #48]       ; 0x30
080002a2:   ldr r2, [r7, #4]
080002a4:   mvn.w r2, r2
080002a8:   omds r2, r1
080002aa:   str r2, [r3, #48]       ; 0x30
080002ac:   add.w r7, r7, #12
080002b0:   mov sp, r7
080002b2:   pop {r7}
080002b4:   bx lr
080002b6:   nop
GPIO_Init:
080002b8:   push {r7}
080002ba:   sub sp, #28
080002bc:   add r7, sp, #0
080002be:   str r0, [r7, #4]
080002c0:   str r1, [r7, #0]
080002c2:   mov.w r3, #0
080002c6:   str r3, [r7, #20]
080002c8:   mov.w r3, #0
080002cc:   str r3, [r7, #16]
080002ce:   mov.w r3, #0
080002d2:   str r3, [r7, #12]
080002d4:   mov.w r3, #0
080002d8:   str r3, [r7, #20]
080002da:   b.n 0x80003ea <GPIO_Init+306>
080002dc:   ldr r3, [r7, #20]
080002de:   mov.w r2, #1
080002e2:   lsl.w r3, r2, r3
080002e6:   str r3, [r7, #16]
080002e8:   ldr r3, [r7, #0]
080002ea:   ldr r2, [r3, #0]
080002ec:   ldr r3, [r7, #16]
080002ee:   omds r3, r2
080002f0:   str r3, [r7, #12]
080002f2:   ldr r2, [r7, #12]
080002f4:   ldr r3, [r7, #16]
080002f6:   cmp r2, r3
080002f8:   bne.n 0x80003e2 <GPIO_Init+298>
080002fa:   ldr r3, [r7, #4]
080002fc:   ldr r2, [r3, #0]
080002fe:   ldr r3, [r7, #20]
08000300:   mov.w r3, r3, lsl #1
08000304:   mov.w r1, #3
08000308:   lsl.w r3, r1, r3
0800030c:   mvn.w r3, r3
08000310:   omds r2, r3
08000312:   ldr r3, [r7, #4]
08000314:   str r2, [r3, #0]
08000316:   ldr r3, [r7, #4]
08000318:   ldr r2, [r3, #0]
0800031a:   ldr r3, [r7, #0]
0800031c:   ldrb r3, [r3, #4]
0800031e:   mov r1, r3
08000320:   ldr r3, [r7, #20]
08000322:   mov.w r3, r3, lsl #1
08000326:   lsl.w r3, r1, r3
0800032a:   orrs r2, r3
0800032c:   ldr r3, [r7, #4]
0800032e:   str r2, [r3, #0]
08000330:   ldr r3, [r7, #0]
08000332:   ldrb r3, [r3, #4]
08000334:   cmp r3, #1
08000336:   beq.n 0x8000340 <GPIO_Init+136>
08000338:   ldr r3, [r7, #0]
0800033a:   ldrb r3, [r3, #4]
0800033c:   cmp r3, #2
0800033e:   bne.n 0x80003aa <GPIO_Init+242>
08000340:   ldr r3, [r7, #4]
08000342:   ldr r2, [r3, #8]
08000344:   ldr r3, [r7, #20]
08000346:   mov.w r3, r3, lsl #1
0800034a:   mov.w r1, #3
0800034e:   lsl.w r3, r1, r3
08000352:   mvn.w r3, r3
08000356:   omds r2, r3
08000358:   ldr r3, [r7, #4]
0800035a:   str r2, [r3, #8]
0800035c:   ldr r3, [r7, #4]
0800035e:   ldr r2, [r3, #8]
08000360:   ldr r3, [r7, #0]
08000362:   ldrb r3, [r3, #5]
08000364:   mov r1, r3
08000366:   ldr r3, [r7, #20]
08000368:   mov.w r3, r3, lsl #1
0800036c:   lsl.w r3, r1, r3
08000370:   orrs r2, r3
08000372:   ldr r3, [r7, #4]
08000374:   str r2, [r3, #8]
08000376:   ldr r3, [r7, #4]
08000378:   ldr r2, [r3, #4]
0800037a:   ldr r3, [r7, #20]
0800037c:   uxth r3, r3
0800037e:   mov.w r1, #1
08000382:   lsl.w r3, r1, r3
08000386:   mvn.w r3, r3
0800038a:   omds r2, r3
0800038c:   ldr r3, [r7, #4]
0800038e:   str r2, [r3, #4]
08000390:   ldr r3, [r7, #4]
08000392:   ldr r2, [r3, #4]
08000394:   ldr r3, [r7, #0]
08000396:   ldrb r3, [r3, #6]
08000398:   mov r1, r3
0800039a:   ldr r3, [r7, #20]
0800039c:   uxth r3, r3
0800039e:   lsl.w r3, r1, r3
080003a2:   uxth r3, r3
080003a4:   orrs r2, r3
080003a6:   ldr r3, [r7, #4]
080003a8:   str r2, [r3, #4]
080003aa:   ldr r3, [r7, #4]
080003ac:   ldr r2, [r3, #12]
080003ae:   ldr r3, [r7, #20]
080003b0:   uxth r3, r3
080003b2:   mov.w r3, r3, lsl #1
080003b6:   mov.w r1, #3
080003ba:   lsl.w r3, r1, r3
080003be:   mvn.w r3, r3
080003c2:   omds r2, r3
080003c4:   ldr r3, [r7, #4]
080003c6:   str r2, [r3, #12]
080003c8:   ldr r3, [r7, #4]
080003ca:   ldr r2, [r3, #12]
080003cc:   ldr r3, [r7, #0]
080003ce:   ldrb r3, [r3, #7]
080003d0:   mov r1, r3
080003d2:   ldr r3, [r7, #20]
080003d4:   mov.w r3, r3, lsl #1
080003d8:   lsl.w r3, r1, r3
080003dc:   orrs r2, r3
080003de:   ldr r3, [r7, #4]
080003e0:   str r2, [r3, #12]
194         for (pinpos = 0x00; pinpos < 0x10; pinpos++)
080003e2:   ldr r3, [r7, #20]
080003e4:   add.w r3, r3, #1
080003e8:   str r3, [r7, #20]
080003ea:   ldr r3, [r7, #20]
080003ec:   cmp r3, #15
080003ee:   bls.w 0x80002dc <GPIO_Init+36>
227       }
080003f2:   add.w r7, r7, #28
080003f6:   mov sp, r7
080003f8:   pop {r7}
080003fa:   bx lr
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
03.09.2013, 00:22
Цитата Сообщение от dym_zh
... При использовании стандартной библиотеки STM32 тактовая частота настраиватся автоматически, перед выполнением основного кода, на максимальную частоту (168МГц) от HSE.
Тут Вы заблуждаетесь. Тот код, который автоматически настраивает системную частоту, полагается на частоту кварца HSE, которое Вы сами должны указать. Часто по умолчанию вписано 25 МГц, а на плате F4-Dyscovery, как Вы заметили, стоит 8 Мгц. Это сразу втрое снижает все частоты.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
03.09.2013, 00:33
Цитата Сообщение от dym_zh
Цитата Сообщение от OtyxPM
Дизассемблер всего кода цикла while() покажите.
Пишу по примерам из инта ...Ну вот, теперь видно, что на цикл приходится 15 команд. Чтобы не считать их длительность по тактам - посмотрите под отладчиком, сколько тактов весь цикл занимает. Дальше сами знаете, что делать :-)
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 39
03.09.2013, 00:44
Цитата Сообщение от OtyxPM
Дальше сами знаете, что делать :-)
Если честно, нет.
мне все же кажется что 15 команд не могут так тормозить, видимо дело в тактировании, а как настроить пока не знаю
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
03.09.2013, 00:54
Цитата Сообщение от dym_zh
Цитата Сообщение от OtyxPM
Дальше сами знаете, что делать :-)
Если честно, нет.
мне все же кажется что 15 команд не могут так тормозить, видимо дело в тактировании, а как настроить пока не знаюДля начала пропишите правильный HSE=8000000 вместо того, который у System_Initа сейчас. Скорей всего, там 25000000 указано, так что частота сразу должна возрасти в 25/8 раза.

А вот прикидочный расчёт таймингов Вашей программы:
168МГц / (25/8) / 15 = 715кГц * 5. То есть 5 тактов на команду в среднем. Это ещё не реальность, но уже видно, что порядок чисел правильный.

Вам dork_usir подсказал уже более удачный способ быстрого ногодрыга:
Максимальная последовательная скорость ногодрыга через BSRR 168МГц делённое на 4...
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 39
03.09.2013, 01:04
Цитата Сообщение от OtyxPM
Цитата Сообщение от dym_zh
Цитата Сообщение от OtyxPM
Дальше сами знаете, что делать :-)
Если честно, нет.
мне все же кажется что 15 команд не могут так тормозить, видимо дело в тактировании, а как настроить пока не знаю
Для начала пропишите правильный HSE=8000000 вместо того, который у System_Initа сейчас. Скорей всего, там 25000000 указано, так что частота сразу должна возрасти в 25/8 раза.

А вот прикидочный расчёт таймингов Вашей программы:
168МГц / (25/8) / 15 = 715кГц * 5. То есть 5 тактов на команду в среднем. Это ещё не реальность, но уже видно, что порядок чисел правильный.

Вам dork_usir подсказал уже более удачный способ быстрого ногодрыга:
Максимальная последовательная скорость ногодрыга через BSRR 168МГц делённое на 4...
Спасибо! завтра попробую!
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
03.09.2013, 01:21
[QUOTE="OtyxPM"]Вам dork_usir подсказал уже более удачный способ быстрого ногодрыга:[QUOTE="Цитата:[/QUOTE]
Максимальная последовательная скорость ногодрыга через BSRR 168МГц делённое на 4...
скорость осмысленного ногодрыга будет пониже, а почему всё-таки не через spi как dosykus_2 советовал?
выход через килоом чтоб ток ограничить и датчик перетянуть его смог, ну завалит он фронты до нескольких мегагерц, так сам датчик вроде больше 10 и не умеет.
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 214
03.09.2013, 06:42
По умолчанию в CoIDE stm32f407 НЕ работает на 168, а работает на 16 HSI напрямую. Для работы на 168 нужно в main добавить строчку SystemInit();
а в system_stm32f4xx.c изменить #define PLL_M 8
но все равно не получится 84Мгц, уже не раз проводили тесты, там в лучшем случаи кажись 10Мгц.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
03.09.2013, 12:21
Цитата Сообщение от moksir
все равно не получится 84Мгц, уже не раз проводили тесты, там в лучшем случаи кажись 10Мгц.
И даже так не получится больше?
Code
1
2
3
4
метка:
STR R0, [R2]
STR R1, [R2]
B метка
, где R0=0, R1=1, R2 = bit-bomding адрес бита 9 регистра ODR порта GPIOD. Цикл из трёх команд, длительность в худшем случае 8 тактов, в лучшем случае 5 тактов. Сигнал, будет не меиндром, но imho частота должна быть выше 10 МГц, нет? Мне сейчас не на чем проверить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.09.2013, 12:21
Помогаю со студенческими работами здесь

ADC and GPIO
привет форум... нужна помощь знающих людей. вот если я настраиваю PA0 для работы с ADC и настраиваю его как аналоговый мод, и вот ADC...

GPIO и DMA
Здравствуйте. Скажите, есть ли возможность настроить DMA таким образом, чтобы при возникновении внешнего прерывания (скажем, при...

GPIO и LPC11xx
Добрый вечер! Как то открыл я даташит по LPC1114 контроллеру, и прочитал вот такую фразу: Pull-up level If the pull-up resistor is...

GPIO via DMA
Кто-нибудь сталкивался с такой задачей как передача байта по DMA в ODR GPIO? (или конкретных бит, если такое вообще возможно). В режиме...

5В на выходе GPIO
Как сделать 5В на выходе GPIO. Я слышал, что как то через настройку порта можна, используя выход с открытым стоком, но у меня в этом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru