Гость hsl Опубликовано 4 Октября, 2011 в 12:32 Жалоба Поделиться Опубликовано 4 Октября, 2011 в 12:32 Доброго времени суток! Делаю программку в 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. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Алексей (ohmjke) Опубликовано 4 Октября, 2011 в 13:33 Жалоба Поделиться Опубликовано 4 Октября, 2011 в 13:33 (изменено) Да, Сергей, именно так это делается. По идее параметр, передаваемый в функцию i2c_write(); типа char, так что можно сразу писать: i2c_write(cur_light); i2c_write(cur_light>>8); Изменено 4 Октября, 2011 в 13:37 пользователем Алексей (ohmjke) Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость hsl Опубликовано 4 Октября, 2011 в 14:30 Жалоба Поделиться Опубликовано 4 Октября, 2011 в 14:30 Ясно, спасибо, а то были сомнения. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти