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

 
 
> AVR-GCC: warning "large integer implicitly truncated to unsigned type", как побороть?
ARV
сообщение Dec 15 2010, 06:44
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



сделал вот такие макросы:
Код
#define s65_w8(x)        do { \
    clr(CS); \
    spi_out_wait(x); \
    set(CS); \
    }while(0)
/// вывод 16 бит команды
#define s65_cmd16(x)    do { \
    set(RS); \
    s65_w8((x)>>8); \
    s65_w8(x); \
    } while(0)

#define    set(x)        S65_PORT |= (x)
#define    clr(x)        S65_PORT &= ((x)^0xFF)

теперь их использую:
Код
uint8_t x;
#define ASX 0x1200

s65_cmd16(0x1806); // ЕСТЬ ВАРНИНГ
s65_cmd16(ASX+x); // НЕТ ВАРНИНГА

в общем, не могу понять, в каком месте возникает это самое усекновение знакового числа в беззнаковое... надоела куча варнингов... можно отключить, но надо ж понять...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение Dec 15 2010, 06:52
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата
...
s65_w8(x & 0xff); \
...

?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 15 2010, 07:15
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (_Pasha @ Dec 15 2010, 12:52) *
s65_w8(x & 0xff);

Фу sad.gif (два раза,один за отсутствие скобок, второй за 0xFF)
s65_w8( (unsigned short)(x));




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


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


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