- 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
if (LD3_state == 0 || LD2_state == 0 || LD1_state == 0)
{
GPIO_SetBits(GPIOB, LED1); //RED ON
LD_Status = NO_LOCK;
}
else
{
LD_Status = LOCK_OK;
}
if (LD4_state == 0 && LD_Status == LOCK_OK)
{
GPIO_SetBits(GPIOB, LED1); //RED ON
}
else
{
GPIO_ResetBits(GPIOB, LED1); //RED OF
}
if (LD4_state == 0 && LD_Status == LOCK_OK)
{
GPIO_ResetBits(GPIOB, LED1); //RED OFF
}
/* Ну можно же было сделать по-человечески, а? */
/* Эквивалентный код: */
LD_Status = LD1_state && LD2_state && LD3_state && LD4_state;
if (LD_Status)
{
GPIO_ResetBits(GPIOB, LED1); //RED OFF
}
else
{
GPIO_SetBits(GPIOB, LED1); //RED ON
}
JloJle4Ka # 0
Как вообще можно было написать такой код, который сверху? Вроде не на «PHP» проект, очевидные вещи-то можно красиво написать...
viteo # 0 ⇈
JloJle4Ka # 0 ⇈
MAKAKA # 0 ⇈
i = 42;
sleep(12);
i = 32;
bormand # 0 ⇈
MAKAKA # 0 ⇈
bormand # 0 ⇈
Туда надо записать джва меджика чтобы снять блокировку FLASH_CR.
0x40022010 == FLASH_CR
Регистр управления флешкой.
0x00000044 == MER | STRT
Mass-erase, start.
MAKAKA # 0 ⇈
На ум приходит low level format, который последние 28 лет работает не очень, и затирание флешки с прошивкой материнки, но там проприетарный API небось, цифр мы не знаем
bormand # 0 ⇈
bormand # 0 ⇈
Не, не настолько жёстко. Тут всё ещё можно перемычками на плате выбрать загрузку через system rom и залить новую прошивку. Даже если программатора под рукой нету.
Ну если перемычки не распаял -- то программатор.
MAKAKA # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
Я могу купить программатор, скачать .bin файл с сайта вендора, вытащить "биос" (или он не в кроватке?) и залить туда всё без ебли, например?
В моем детстве всякие стираемые светом чипы вполне себе перепрошивали в полудомашних условиях
bormand # 0 ⇈
Вопрос в том, где ты полную прошивку скачаешь. Разве что с форумов умельцев. В обновлениях часто только куски выкладывают.
MAKAKA # 0 ⇈
Раньше биосы были на rom.by
JloJle4Ka # 0 ⇈
MAKAKA # 0 ⇈
JloJle4Ka # 0 ⇈
viteo # 0 ⇈
этот код - пример того, что получается, если ты единственный специалист на селе.
[email protected] # 0
На 11 и 20 строке условие одинаково. Если оно истинно, то диод сначала включится и сразу же выключится. Если ложно, то он просто выключится.
bormand # 0 ⇈
А потом окажется, что там на плате какой-нибудь сброс схемы триггерился по этому импульсу, а после оптимизации теперь всё поломалось.
viteo # 0 ⇈
на самом деле все это завернуто в while(true) с секундной задержкой, и для оператора (и судя по всему для легаси программиста) это наносекундное моргание было просто незаметно.
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
Ага, на десяток другой наносекунд. Внимательный оператор легко это заметит.
JloJle4Ka # 0 ⇈
[email protected] # 0 ⇈
bormand # 0 ⇈
bormand # 0 ⇈
Вдруг это электромагнит подъёмного крана. И если груз перекосило и lock пропал, он просто передёргивает магнитом чтобы поправить груз.
[email protected] # 0 ⇈
LED1 — Load Extracting Device 1?
bormand # 0 ⇈
JloJle4Ka # 0 ⇈
MAKAKA # 0
bormand # 0 ⇈
Здесь должна быть ссылка на статью про лифт на ардуине.