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

 
 
> вывод через printf переменной unsigned long int, printf
messenger
сообщение Jan 9 2013, 14:01
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 361
Регистрация: 23-03-07
Пользователь №: 26 457



Здравствуйте уважаемые пользователи форума!
Столкунлся с проблемой и прошу помощи.
Конроллер ATmega16? среда CVAVR

обявляю прерменную 32 бита
unsigned long int REG_0=0b0...........................................01 (32 бита)
вывожу через printf
printf("REG0= %u ",REG_0);

но явно пропадают первые два старших байта, не могу разобраться как быть.

и насколько правильно выделять из unsigned long int 4 байта типа unsigned char

bait_1=REG_0 & 0xFF;
bait_2=(REG_0>>=8) & 0xFF;
bait_3=(REG_0>>=8) & 0xFF;
bait_4=(REG_0>>=8) & 0xFF;

Спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Feb 20 2013, 11:11
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Ой, да неужели непонятно, что слова «это плохой стиль для встраиваемых систем» означают «это сделано не так, как привык тот, кто сказал, что это плохой стиль».
Если не всегда, то почти всегда. Сказанные «вообще», без учета конкретных ограничений конкретной системы — всегда. Но с учётом ограничений это не «плохой стиль», а «неучёт ограничений».

Для на всякий случай хочу сразу сказать, что компы, на которых появился и сам С, и его printf в библиотеке, находятся где-то на уровне от atmega162+внешнее ОЗУ до atmega64 — по ресурсам. По быстродействию на порядок-полтора медленнее. Те компы медленнее, чем AVR-ки, а не наоборот.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:34
Рейтинг@Mail.ru


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