Как стать автором
Обновить

Комментарии 19

P.S. не забывайте настроить яркость дисплея заранее.

Контрастность вообще-то.

Кстати а зачем тут:
uint8_t lo = (data << 4) & 0xF0;

накладывать битовую маску?

Видимо, мышечная память с правым сдвигом и знаковым битом, хотя, двигать signed вещи изначально не очень здравая идея.

А где оно объявлено signed?
для сдвига влево знак не важен.
Код совсем разный для без-знакового и знакового числа, поэтому без-знаковое обязательно к применению.
В данном случае нужен просто битовый результат. А тут он будет идентичен:
uint8_t lo = (uint8_t )data << 4
int8_t lo = (int8_t)data << 4
Да, результаты совпадают, но посмотрите на код в ассемблере
ldd r24,Y+3
swap r24
andi r24,lo8(-16)
std Y+3,r24

для без-знакового и
ldd r24,Y+3
mov __tmp_reg__,r24
lsl r0
sbc r25,r25
swap r24
swap r25
andi r25,0xf0
eor r25,r24
andi r24,0xf0
eor r25,r24
std Y+3,r24

для знакового байта.
Согласен, увы с оптимизацией компиляции в отличии от x86 у микроконтроллеров плохо.
хаха, не нужно, видимо на автомате поставил
На всякий случай.
Кстати, я бы в обратном порядке сделал — сначала маску 0x0F, а потом уже сдвиг.
А зачем? Там для операндов явно указан тип uint8_t.
А <<,>> — в С это логический, либо арифметический, но не циклический сдвиг.
Я ж говорю — «на всякий случай».
Вообще, это привычка после ассемблера MCS-51, там сдвиг только циклический.
Плюс остатки отношения к C как к макроассемблеру, а не ЯВУ.
Так все подробно описано. Отличное руководство начинающим!
Можно нескромный вопрос: какой вообще смысл в подобных «статьях»? «Возьмем калокуб, щелкнем пять галочек и радуемся».
Чем-то напоминает инструкцию по сборке ЛЕГО.

Где оригинальность? Где вообще какая-то польза?
Одной из целью было рассказать, как именно работать с данным типом дисплея. Логика работы с дисплеем применима к любому другому контроллеру

А зачем UART через USB пробрасывать, если можно поднять тот же CDC через уже подключенный USB? Благо в cubemx это делается очень просто.

Зачем UART, зачем CDC? выбрасывайте эти ардуиновские замашки. У вас для вывода отладочной информации есть все из коробки (из вашей отладочной платы) — пользуйте SWV.
Я обычно через отладчик смотрю, тут решил для наглядности Termite добавить
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации