21.12.2018, 14:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Мда,так напиши и будет у тебя макрос
__________________
Глаза боятся,а руки делают.
|
|
|
|
21.12.2018, 16:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,629
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от olegprom19
|
так это тоже функция получается
|
Нет, это - макрос! sizeof() из константной строки вычисляется препроцессором.
А вот если строка — не константа, то да, только функцией strlen() можно длину строки вычислить.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
25.12.2018, 15:48
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Доброго вечера, вопросик
Для сравнения можно такую запись использовать?
if (((L-Lold)›70)||((Lold-L)›70))
т.е. мне нужно проверка было ли изменение (увеличение или уменьшение) значения на 70
и изменяться ли переменные после такой записи?
|
|
|
|
25.12.2018, 16:08
|
|
Вид на жительство
Регистрация: 27.11.2007
Сообщений: 429
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Можно.
Не изменяется.
|
|
|
|
25.12.2018, 16:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.03.2007
Сообщений: 1,359
Сказал спасибо: 85
Сказали Спасибо 616 раз(а) в 372 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от olegprom19
|
if (((L-Lold)›70)||((Lold-L)›70))
|
А какого типа переменные?
Если беззнаковые, то результат выражение будет всегда 1 (истина), кроме случая, когда L==Lold
|
|
|
|
25.12.2018, 18:02
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от pambaru
|
А какого типа переменные?
Если беззнаковые, то результат выражение будет всегда 1 (истина), кроме случая, когда L==Lold
|
беззнаковые
если отклонение на 70 больше или меньше
или если на 10 отклонение тоже будет истина?
|
|
|
|
26.12.2018, 06:44
|
|
Вид на жительство
Регистрация: 27.11.2007
Сообщений: 429
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
olegprom19, в случае с беззнаковыми если вычитаемое больше уменьшаемого, то результат будет хрен знает какой.
Если L и Lold uint8_t
L=1 Lold=10 то (L-Lold) будет больше 70
L=1 Lold=200 то (L-Lold) будет меньше 70
Если L и Lold uint16_t
L=1 Lold=200 то (L-Lold) будет больше 70
L=1 Lold=65500 то (L-Lold) будет меньше 70
Ну и т.д.
Ну об этом Вы как программист должны заботиться.
|
|
|
Сказали "Спасибо" sat_art
|
|
|
26.12.2018, 07:58
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от sat_art
|
olegprom19, в случае с беззнаковыми если вычитаемое больше уменьшаемого, то результат будет хрен знает какой.
|
спасибо, (дошло что при вычитании получиться число больше)
т.о. можно заменить вычитание сложением
1. if ((L›(Lold+70))||(Lold›(L+70)))
2. либо использовать знаковые переменные
3.либо тернарный оператор if ( ((a›b)?(a-b) ![Обижен](images/smilies/icon_beee.gif) b-a)) › 70 ) {........}
Последний раз редактировалось olegprom19; 26.12.2018 в 08:27.
|
|
|
|
29.01.2019, 11:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,629
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Мужики, я особо за новинками STM32 не слежу, но вот интересно: не появились ли в 8-10-ногих корпусах STM'ки на cortex-M0 центов по 10-20 за штучку? А то иной раз 20-ногую STM32F030 даже как-то жалко запаивать туда, где только три-четыре (без питания) ее ноги используется...
Ну а совсем уж здорово было бы, если бы этот 20-центовый микроконтроллер и USB без кварца умел (как STM32F042)!
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
27.03.2019, 07:24
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Вопрос больше наверное "риторический" по способу написания программ
не секрет что программу можно написать десятками разных способов
и все зависит от задачи
пример у-во поэтапно выполняет тех процесс
можно использовать while
или использовать "статусы" программы
т.е. по мере изменения статусов программа будет заходить и выполнять нужные блоки и "идти дальше"
сделал по статусам с прицелом на дополнения/изменения,
вдруг появятся дополнительные задачи
хотелось бы услышать разные мнения на этот счет...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:22.
|
|