|
Как слепить 2 байта в int16 |
|
|
|
Jul 31 2009, 13:52
|

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879

|
Возник глупейший вопрос из названия темы. Почти на ровном месте. Компилятор CCS PCW. Обработчик прерывания на асме, ловит по радио пакеты. В составе пакетов передается несколько двубайтовых чисел. После успешного приема у меня есть парочки вида Код int8 CntTXL,CntTXH; Как мне без 8 сдвижек влево или без умножения CntTXH на 256 с прибавлением CntTXL получить Код int16 CntTX; ?
--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
|
|
|
|
|
 |
Ответов
|
Jul 31 2009, 14:15
|

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879

|
Цитата(aaarrr @ Jul 31 2009, 17:08)  Чем "сдвижки" не устраивают? В реальности ведь компилятор 8 раз циклически сдвигать не станет, как, впрочем, и умножать в лоб на 256. Будет.. Пытаюсь вспомнить, когда-то как-то через union делал.. Тогда вообще без математики он понимает, что это 2-х байтовая переменная, отводит под двухбайтовое число те же байты в памяти, но чего-то в хэлпе найти не могу..
--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
|
|
|
|
|
Jul 31 2009, 14:19
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Eddy71 @ Jul 31 2009, 18:15)  Будет.. Уверены? Тогда меняйте компилятор, ибо если здесь наблюдается такой маразм, то дальше ловить нечего. Цитата(Eddy71 @ Jul 31 2009, 18:15)  Пытаюсь вспомнить, когда-то как-то через union делал.. Тогда вообще без математики он понимает, что это 2-х байтовая переменная, отводит под двухбайтовое число те же байты в памяти, но чего-то в хэлпе найти не могу.. Дык это не в хелпе, а в книжке по 'C' искать надо.
|
|
|
|
|
Jul 31 2009, 14:42
|

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879

|
Цитата(aaarrr @ Jul 31 2009, 17:19)  Уверены? Тогда меняйте компилятор, ибо если здесь наблюдается такой маразм, то дальше ловить нечего. Дык это не в хелпе, а в книжке по 'C' искать надо. Нашел. Всё очень просто оказалось: Код CntTX = make16(CntTXh,CntTXh);
--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
|
|
|
|
|
Aug 3 2009, 09:41
|

Местный
  
Группа: Свой
Сообщений: 224
Регистрация: 23-11-08
Из: Украина, Луганск
Пользователь №: 41 879

|
Цитата(_Pasha @ Aug 3 2009, 08:52)  По теме. SDCC Охwенный минус - нету поддержки dspic, и простеньких пиков. Зато остальное(pic18) - полет нормальный. Политические войны на тему "что лучше" раньше в Фидо карались до отключения на год.. С компилятором оно как с женщиной: одному нравится, чтоб была как балерина невесомая, другому что можно было "..а я в тебя как в море..", кому-то французская изысканность, а кому то и немецкий "..дасис фантастиш!" Каждый прав по своему.
--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
|
|
|
|
Сообщений в этой теме
Eddy71 Как слепить 2 байта в int16 Jul 31 2009, 13:52       defunct Цитата(Eddy71 @ Aug 1 2009, 19:15) если г... Aug 2 2009, 23:57         zltigo Цитата(Eddy71 @ Aug 3 2009, 12:41) Каждый... Aug 3 2009, 09:51  defunct Цитата(Eddy71 @ Jul 31 2009, 17:15) Будет... Jul 31 2009, 15:07   AHTOXA Цитата(defunct @ Jul 31 2009, 21:07) Кодu... Jul 31 2009, 17:04    defunct Цитата(AHTOXA @ Jul 31 2009, 20:04) С ... Jul 31 2009, 17:38  SasaVitebsk Цитата(Eddy71 @ Jul 31 2009, 17:15) Будет... Jul 31 2009, 17:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|