Определение младшего и старшего байта числа типа int. Нужна подсказка
15.06.2013, 22:33
|
|
|
Прописка
Регистрация: 14.09.2010
Сообщений: 105
Сказал спасибо: 9
Сказали Спасибо 15 раз(а) в 11 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Сообщение от tempora
|
GCC и CvAvr (которые, впрочем, также были Вами названы далеко не сразу), без указания версий - тоже не компиляторы, а только названия линеек продуктов, так что "неча на зеркало пенять". 
Хотя, дело, конечно же, не в компиляторах...
|
Дело как раз именно в них - все дают разный результат одного и того же кода.
И опять вместо дачи ответа на вопрос (Какой у Вас компилятор?) умничаем.
Версии GCC и CvAvr у меня последнее из доступного.
CV -2.05.03 (2011 г.)
GCC, а точнее WinAVR - 20100110
|
|
|
|
15.06.2013, 22:50
|
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Сообщение от AlexPi
|
Господин "nahimovv", я вот уже дважды Вас просил (заметьте в весьма вежливой форме) сказать какой именно у Вас компилятор, Вы же занимаетесь острословием на грани оскорблений вместо того чтобы дать внятный ответ на простой вопрос.
AVR Studio 4.18 - не компилятор , а так называемая IDE. Меня интересует что Вы к ней подключили.
|
"Вот какой рассеянный С улицы Бассейной!"(С) 
А где вы меня просили, показать можете?
К AVR Studio 4.18 прикручен WinAVR-20100110, ничего примечательного, в общем.
|
Цитата:
|
|
А во вторых, на предыдущей странице я приводил еще код сгенерированний GCC, там приблизительно тот же результат, подобный результат получил и "_Артём_". Поэтому делать однозначный вывод при этом оскорбляя других по крайней мере не разумно.
|
Неужели? А с каких это пор для меня чужой код стал аксиомой? Мало ли кто что наваяет! Или вы предлагаете мне "не верь глазам своим"?
|
Цитата:
|
Ваш частный случай мало что дает как и мои и того же "_Артём_". Нужно набрать статистику и только после этого можно делать выводы.
Лично я хочу просто разобраться с вопросом, а не доказывать свое любой ценой.
|
Да вы о чём? Какой частный случай? На всех компиляторах для МК разных производителей? Что компилит HI-TECH я привёл, уже частным случаем и не пахнет! Это уже не частный случай, это несчастный случай... с CV!
Последний раз редактировалось nahimovv; 15.06.2013 в 22:52.
|
|
|
|
15.06.2013, 23:23
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Сообщение от AlexPi
|
|
CV -2.05.03 (2011 г.)
|
Какая именно "2.05.03"? Они очень разные бывают.
Upd.__________________
Сообщение от evg220
|
|
И в них - тоже.
|
В рамках того вопроса, в котором так затрудняется разобраться гр. Pi*, не в них.
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 15.06.2013 в 23:28.
|
|
|
|
16.06.2013, 00:19
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Эксперименты с long long не проводил, но старший байт int (2 байта) через сдвиг (result_char_hi = var_int ›› 8 ) получался без всяких сдвигов и дополнительных тактов. На CV - сразу нужный регистр, на WinAVR - не помню уже. Там volatile было, но всё равно никаких сдвигов.
Для младшего просто result_char_low = var_int;
Последний раз редактировалось Godzilla82; 16.06.2013 в 00:25.
|
|
|
|
16.06.2013, 00:57
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Godzilla82, подождите, дайте автору этих утверждений изложить обстоятельства до конца, а-то, у него пока всё какие-то недомолвки и недопонимания, даже версию ЦВ назвать не смог.
__________________
There's always more than one way to skin a cat.
|
|
|
|
16.06.2013, 01:02
|
|
|
Прописка
Регистрация: 14.09.2010
Сообщений: 105
Сказал спасибо: 9
Сказали Спасибо 15 раз(а) в 11 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Сообщение от nahimovv
|
|
Да вы о чём? Какой частный случай? На всех компиляторах для МК разных производителей? Что компилит HI-TECH я привёл, уже частным случаем и не пахнет! Это уже не частный случай, это несчастный случай... с CV!
|
О Господи !!!
Да отцепитесь Вы уже от того несчастного CV посмотрите сообщение #56. В нем я приводил код для WinAVR он же GNU AVR GCC. Также получилось через сдвиг.
Но опять же повторяю это мой частный случай как и Ваш. Это говорит о том, что да в некоторых местах сработает оптимизация, а иногда и нет.
Между прочим я даже уже знаю почему, Ваш результат я повторил. Но кроме этих возможны еще варианты.
но это как и рассуждения об индианности рассказы что Cortex это круто... совершенно не в тему и не по сути вопроса.
А по сути как раз то, что предложенный мною ранее способ выделения отдельных байт из целого, через union даст код по меньшей мере не хуже, а иногда значительно лучше чем запись со сдвигом.
Я не стану утверждать что этот способ будет нормально работать на других платформах, но то что дает неплохой результат для GCC и CodeVision это точно.
|
|
|
|
16.06.2013, 09:49
|
|
|
Гражданин KAZUS.RUN
Регистрация: 03.02.2007
Сообщений: 116
Сказал спасибо: 3
Сказали Спасибо 20 раз(а) в 9 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Сообщение от AlexPi
|
|
предложенный мною ранее способ выделения отдельных байт из целого...
|
Может кто-нибудь посмотрит способ, предложенный в #32? Он то уж точно - "платформонезависимый"...
__________________
Здесь вам не тут!
|
|
|
|
16.06.2013, 11:10
|
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Уверены? Cosmic for STM8 вам в помощь.
|
|
|
|
16.06.2013, 11:37
|
|
|
Гражданин KAZUS.RUN
Регистрация: 03.02.2007
Сообщений: 116
Сказал спасибо: 3
Сказали Спасибо 20 раз(а) в 9 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Сообщение от nahimovv
|
|
Уверены?
|
Нет. Потому и попросил проверить.
__________________
Здесь вам не тут!
|
|
|
|
16.06.2013, 16:15
|
|
|
Гражданин KAZUS.RUN
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
|
Re: Определение младшего и старшего байта числа типа int. Нужна подсказка
Тема то начиналась Подскажите пожалуйста, в avr-gcc есть ли встроенные функции или макросы для определения младшего и старшего байтов переменных типа int.
итого: встроенных функций нет, есть два реальных способа - сдвиг или через указатель, имхо вполне по расходам памяти идентичны.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:42.
|
|