реклама на сайте
подробности

 
 
> Как 4 байта в unsigned long ?, Есть ли в WinAVR готовые функции?
Who_are_you?
сообщение Jun 21 2018, 11:11
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 185
Регистрация: 5-02-10
Из: Донецк
Пользователь №: 55 329



Есть ли в WinAVR готовые функции?
Нужно 4 байта всунуть в long и отобразить на LCD.
Готовых решений в Инете не нашел.

Код
// ...
void LCD_WriteText (char font, char * text)   // функция отображения текста
// ...
#define   BUFFER_SIZE  255 // buffer for receving/sending messages
unsigned char RxBuf [BUFFER_SIZE];  //
unsigned long freeMemSD;
char buffe[11];

RxBuf[8]  =1;     // Highest
RxBuf[9]  =2;     // Higher
RxBuf[10] =3;    // Hi
RxBuf[11] =4;    // Lo

// freeMemSD <-- (Highest, Higher, Hi, Lo );
// buffe <-- freeMemSD;
LCD_WriteText (16,buffe);  // выводит символы на экран
// может можно как-то обойтись без long ?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dimka76
сообщение Jun 23 2018, 20:34
Сообщение #2


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Код
unsigned long freeMemSD;
char buffe[11];

// туда
freeMemSD = *((unsigned long*)&RxBuf[8]);

// Обратно
*((unsigned long*)&RxBuf[8]) = freeMemSD;


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 23 2018, 21:13
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (dimka76 @ Jun 23 2018, 23:34) *
CODE
// туда
freeMemSD = *((unsigned long*)&RxBuf[8]);

// Обратно
*((unsigned long*)&RxBuf[8]) = freeMemSD;
годится для AVR, не годится для процессоров, не поддерживающих невыровненный доступ. Для исключения сюрпризов при использовании старого отлаженного кода на новых ядрах, лучше уж сразу приучить cебя использовать хотя бы memcpy().


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 15:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016