Сообщение от JUSTBUFFY
|
Доброго времени суток. На вашем форуме, как и в работе с CVAVR я пока новичок. Сдаю семестровую работу по учебе с интересным и не понятным заданием.
У меня есть переменная NUM = 0b10101010
Необходимо вывести её на семисегментный индикатор (8 ячеек)
Т.е. чтобы в 1 ячейке была 1, во второй 0 и т.д.
Динамическую индикацию я уже сделал, а как вот сам вывод настроить я не пойму.
Надеюсь на помощь.
|
Я бы особо не мудрил и сделал так:
Код:
|
unsigned int your_variable = 0b10101010;
unsigned char NUM_array[8];
for(int i=8; i›0; i--){
if(your_variable & 1‹‹7)
NUM_array[i-1]='1';
else
NUM_array[i-1]='0';
your_variable = your_variable ‹‹1;
} |
Ну, а дальше, раз вывод уже готов - выводишь массив на индикатор.
А если нужно разделить байт на 2 нибла - это еще проще.
unsigned int your_variable = 0b10101010, Nibl_hi, Nibl_low;
Nibl_hi = 0;
Nibl_hi = your_variable & 0xF0;
Nibl_low = 0;
Nibl_low = your_variable & 0x0F;
Дальше делаешь с ними что надо. Можешь двигать их туда-сюда, а можешь и не двигать.