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

 
 
> Как слепить 2 байта в int16
Eddy71
сообщение Jul 31 2009, 13:52
Сообщение #1


Местный
***

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



Возник глупейший вопрос из названия темы. Почти на ровном месте. Компилятор CCS PCW. Обработчик прерывания на асме, ловит по радио пакеты. В составе пакетов передается несколько двубайтовых чисел. После успешного приема у меня есть парочки вида
Код
int8 CntTXL,CntTXH;

Как мне без 8 сдвижек влево или без умножения CntTXH на 256 с прибавлением CntTXL получить
Код
int16 CntTX;
?


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jul 31 2009, 14:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Eddy71 @ Jul 31 2009, 17:52) *
Как мне без 8 сдвижек влево или без умножения

Чем "сдвижки" не устраивают? В реальности ведь компилятор 8 раз циклически сдвигать не станет, как, впрочем, и умножать в лоб на 256.
Go to the top of the page
 
+Quote Post
Eddy71
сообщение Jul 31 2009, 14:15
Сообщение #3


Местный
***

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



Цитата(aaarrr @ Jul 31 2009, 17:08) *
Чем "сдвижки" не устраивают? В реальности ведь компилятор 8 раз циклически сдвигать не станет, как, впрочем, и умножать в лоб на 256.

Будет..
Пытаюсь вспомнить, когда-то как-то через union делал.. Тогда вообще без математики он понимает, что это 2-х байтовая переменная, отводит под двухбайтовое число те же байты в памяти, но чего-то в хэлпе найти не могу..


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 31 2009, 14:19
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Eddy71 @ Jul 31 2009, 18:15) *
Будет..

Уверены? Тогда меняйте компилятор, ибо если здесь наблюдается такой маразм, то дальше ловить нечего.

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

Дык это не в хелпе, а в книжке по 'C' искать надо.
Go to the top of the page
 
+Quote Post
Eddy71
сообщение Jul 31 2009, 14:42
Сообщение #5


Местный
***

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



Цитата(aaarrr @ Jul 31 2009, 17:19) *
Уверены? Тогда меняйте компилятор, ибо если здесь наблюдается такой маразм, то дальше ловить нечего.
Дык это не в хелпе, а в книжке по 'C' искать надо.

Нашел. Всё очень просто оказалось:
Код
CntTX = make16(CntTXh,CntTXh);

rolleyes.gif


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 31 2009, 14:45
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Eddy71 @ Jul 31 2009, 18:42) *
Нашел. Всё очень просто оказалось:

Ужас, чесслово sad.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 1 2009, 09:03
Сообщение #7


Гуру
******

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



Цитата(aaarrr @ Jul 31 2009, 17:45) *
Ужас, чесслово sad.gif
Не то слово...


--------------------
На любой вопрос даю любой ответ
"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
Eddy71
сообщение Aug 1 2009, 16:15
Сообщение #8


Местный
***

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



Цитата(Сергей Борщ @ Aug 1 2009, 12:03) *

Почему я до сих пор воюю с CCS? Очень просто - если глянуть ветку, где Hi-tech PICC обсуждается становится страшно. Знакомые с продуктом Микроэлектроники воевали - тоже мало хорошего. С этим компилятором периодически "косяки" вылазят из-за неадекватного мануала. Сам компилятор не косячит, работает стабильно, быстро, код компактный..


--------------------
«Чтобы что-то изобрести, вам потребуется хорошее воображение и куча мусора» /Томас Эдисон/
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 3 2009, 05:52
Сообщение #9


;
******

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



Цитата(Eddy71 @ Aug 1 2009, 19:15) *
Почему я до сих пор воюю с CCS? Очень просто - если глянуть ветку, где Hi-tech PICC обсуждается становится страшно. 

bb-offtopic.gif  пару лет назад рассказывал одному челу - жаловался, в общем, не успевала винда под дельфями кой-чего делать. Товарисч слушал-слушал мои тирады, потом говорит: "винда, винда... линукс!!!" Так и не пожаловался, короче smile.gif
По теме. SDCC Охwенный минус - нету поддержки dspic, и простеньких пиков. Зато остальное(pic18) - полет нормальный.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Eddy71   Как слепить 2 байта в int16   Jul 31 2009, 13:52
|- - defunct   Цитата(Eddy71 @ Aug 1 2009, 19:15) если г...   Aug 2 2009, 23:57
|- - Eddy71   Цитата(_Pasha @ Aug 3 2009, 08:52) По тем...   Aug 3 2009, 09:41
|- - zltigo   Цитата(Eddy71 @ Aug 3 2009, 12:41) Каждый...   Aug 3 2009, 09:51
|- - SSerge   Цитата(Eddy71 @ Aug 3 2009, 15:41) С комп...   Aug 3 2009, 11:15
|- - _Pasha   Цитата(SSerge @ Aug 3 2009, 14:15) А кое-...   Aug 3 2009, 11:43
- - 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


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

 


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


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