Перейти к содержанию

Разложение 16 разрядного числа


Рекомендуемые сообщения

Доброго времени суток!

Делаю программку в CodevisionAVR, соответственно на С, возникла такая проблема есть переменная unsigned int 0-65535, ее нужно передать через I2C, но у него формат unsigned char т.е. целое число 0-255, получается нужно разложить исходное число на младший и старший байт и передать по очереди, но вот как разложить, что то не соображу, подскажите плиз.

 

Добавлено после раздумий:

Что то наковырял, правильно ли я понимаю, если сделать так

temp=cur_light;
i2c_write(temp);
temp=cur_light>>8;
i2c_write(temp);

первый раз в temp запишется младший байт, а после сдвига старший, правильно?

Переменная temp соответственно целое 0-255.

Ссылка на комментарий
Поделиться на другие сайты

Да, Сергей, именно так это делается.

По идее параметр, передаваемый в функцию i2c_write(); типа char, так что можно сразу писать:

 

i2c_write(cur_light);
i2c_write(cur_light>>8);

Изменено пользователем Алексей (ohmjke)
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...