Поиск таблиц для 8-значного дисплея

Мой проект на STM32f407-Discovery. Я отправлю сообщение с терминала на свою плату, и я использую это сообщение для отображения 8-значного дисплея. Я пытаюсь создать таблицу поиска для 8-значного дисплея. Я буду использовать его для счетчика, но я не знаю, с чего начать. Могу ли я использовать для этого корпус переключателя? Пожалуйста помоги.

Весь смысл LUT заключается в том, чтобы избежать использования структуры переключателя.
справочная таблица в идеале представляет собой однократное чтение с идеально простой математикой (надеюсь, сдвиг и добавление). где оператор switch иногда может оптимизироваться, в худшем случае это очень длинное очень медленное дерево if-then-else.
Я полагаю, вы знаете, как управлять каждым сегментом отдельно? а затем мигать двумя сегментами по одному вперед и назад и так далее, чтобы создать иллюзию того, что они все включены? как только вы это поймете, вы сможете/будете определять, какие выводы управляют каким сегментом. то вы просто выкладываете таблицу, как ответили ниже. и введите это в свой код, который мигает сегментами с некоторой скоростью

Ответы (1)

Вы можете использовать переключатель или поиск. Я не знаком с устройством, но этот псевдокод может дать вам некоторые подсказки.

// +--a--+
// f     b
// +--g--+ 
// e     c
// +--d--+

switch (char){
  //                 abcdefg segments
  case "A": segs = 0b1110111;
  case "B": segs = 0b0011111;
  case "C": etc.
}

В качестве альтернативы определите все шаблоны в таблице поиска.

int segs[65] = 0b1110111;    // A
int segs[66] = 0b0011111;    // B
int segs[67] = etc.

port0 = segs[char];
Компилятору может не понравиться "int segs[65] = 0b1110111;" Возможно, вам больше повезет с "char upper[26]; upper[0] = 0x77;..." для создания таблицы поиска, а затем "if ((input<='A') && (input >='Z' )) segs = верхний [вход-'A'];" чтобы прочитать значение.