Преобразование long int к char в AVR C.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Dikoy 02 декабря 2006 г. 11:35

Такой вопрос. Есть переменная long int (4 байта). Точнее, это элемент массива типа long int. Её надо раскрошить на 4 переменные char (1 байт) и слить в UART. Пишу на Коде-Вижне.
Почитал ричи с керниганом, они пишут, что нижеприведённый код, цитирую, "ведёт себя хорошо" :)
Вот и вопрос - насколько это работоспособно?

unsigned char i=0;
unsigned char temp=0;
long int koefp[11];
/************************/
for (i=0; i<11; i++)
{
temp=koefp[i];
USART_Transmit( temp );
temp=(koefp[i] >> 8);
USART_Transmit( temp );
temp=(koefp[i] >> 8);
USART_Transmit( temp );
temp=(koefp[i] >> 8);
USART_Transmit( temp );
}

То есть, при присвоении чару лонг-инта, чару присваиваются только младшие 8 бит?
При сдвиге, результат сдвига в переменной лонг инт сохраняется? То есть, надо каждый раз сдвигать по 8 или сначала на 8, потом на 16, потом на 24?..

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 69:


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание