Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Определение младшего и старшего байта числа типа int. Нужна подсказка

Непрочитано 15.06.2013, 22:33  
AlexPi
Прописка
 
Регистрация: 14.09.2010
Сообщений: 105
Сказал спасибо: 9
Сказали Спасибо 15 раз(а) в 11 сообщении(ях)
AlexPi на пути к лучшему
По умолчанию Re: Определение младшего и старшего байта числа типа int. Нужна подсказка

Сообщение от tempora Посмотреть сообщение
GCC и CvAvr (которые, впрочем, также были Вами названы далеко не сразу), без указания версий - тоже не компиляторы, а только названия линеек продуктов, так что "неча на зеркало пенять".

Хотя, дело, конечно же, не в компиляторах...
Дело как раз именно в них - все дают разный результат одного и того же кода.
И опять вместо дачи ответа на вопрос (Какой у Вас компилятор?) умничаем.

Версии GCC и CvAvr у меня последнее из доступного.
CV -2.05.03 (2011 г.)
GCC, а точнее WinAVR - 20100110
Реклама:
AlexPi вне форума  
Непрочитано 15.06.2013, 22:50  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию 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.
nahimovv вне форума  
Непрочитано 15.06.2013, 23:23  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию 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.
tempora вне форума  
Непрочитано 16.06.2013, 00:19  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение 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.
Godzilla82 вне форума  
Непрочитано 16.06.2013, 00:57  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Определение младшего и старшего байта числа типа int. Нужна подсказка

Godzilla82, подождите, дайте автору этих утверждений изложить обстоятельства до конца, а-то, у него пока всё какие-то недомолвки и недопонимания, даже версию ЦВ назвать не смог.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 16.06.2013, 01:02  
AlexPi
Прописка
 
Регистрация: 14.09.2010
Сообщений: 105
Сказал спасибо: 9
Сказали Спасибо 15 раз(а) в 11 сообщении(ях)
AlexPi на пути к лучшему
По умолчанию Re: Определение младшего и старшего байта числа типа int. Нужна подсказка

Сообщение от nahimovv Посмотреть сообщение
Да вы о чём? Какой частный случай? На всех компиляторах для МК разных производителей? Что компилит HI-TECH я привёл, уже частным случаем и не пахнет! Это уже не частный случай, это несчастный случай... с CV!
О Господи !!!
Да отцепитесь Вы уже от того несчастного CV посмотрите сообщение #56. В нем я приводил код для WinAVR он же GNU AVR GCC. Также получилось через сдвиг.
Но опять же повторяю это мой частный случай как и Ваш. Это говорит о том, что да в некоторых местах сработает оптимизация, а иногда и нет.
Между прочим я даже уже знаю почему, Ваш результат я повторил. Но кроме этих возможны еще варианты.
но это как и рассуждения об индианности рассказы что Cortex это круто... совершенно не в тему и не по сути вопроса.

А по сути как раз то, что предложенный мною ранее способ выделения отдельных байт из целого, через union даст код по меньшей мере не хуже, а иногда значительно лучше чем запись со сдвигом.
Я не стану утверждать что этот способ будет нормально работать на других платформах, но то что дает неплохой результат для GCC и CodeVision это точно.
AlexPi вне форума  
Непрочитано 16.06.2013, 09:49  
evg220
Гражданин KAZUS.RUN
 
Аватар для evg220
 
Регистрация: 03.02.2007
Сообщений: 116
Сказал спасибо: 3
Сказали Спасибо 20 раз(а) в 9 сообщении(ях)
evg220 на пути к лучшему
По умолчанию Re: Определение младшего и старшего байта числа типа int. Нужна подсказка

Сообщение от AlexPi Посмотреть сообщение
предложенный мною ранее способ выделения отдельных байт из целого...
Может кто-нибудь посмотрит способ, предложенный в #32? Он то уж точно - "платформонезависимый"...
__________________
Здесь вам не тут!
evg220 вне форума  
Непрочитано 16.06.2013, 11:10  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Определение младшего и старшего байта числа типа int. Нужна подсказка

Уверены? Cosmic for STM8 вам в помощь.
nahimovv вне форума  
Непрочитано 16.06.2013, 11:37  
evg220
Гражданин KAZUS.RUN
 
Аватар для evg220
 
Регистрация: 03.02.2007
Сообщений: 116
Сказал спасибо: 3
Сказали Спасибо 20 раз(а) в 9 сообщении(ях)
evg220 на пути к лучшему
По умолчанию Re: Определение младшего и старшего байта числа типа int. Нужна подсказка

Сообщение от nahimovv Посмотреть сообщение
Уверены?
Нет. Потому и попросил проверить.
__________________
Здесь вам не тут!
evg220 вне форума  
Непрочитано 16.06.2013, 16:15  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Определение младшего и старшего байта числа типа int. Нужна подсказка

Тема то начиналась Подскажите пожалуйста, в avr-gcc есть ли встроенные функции или макросы для определения младшего и старшего байтов переменных типа int.
итого: встроенных функций нет, есть два реальных способа - сдвиг или через указатель, имхо вполне по расходам памяти идентичны.
oleg110592 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение типа симистора maks191 Информация по радиокомпонентам 5 09.12.2012 23:15
Научите int в два байта и наоборот? ) whoim Электроника - это просто 4 13.08.2012 21:56
Как 4 байта, принятых по USART превратить в число формата long int Black Jack Микроконтроллеры, АЦП, память и т.д 2 06.06.2012 21:32
Определение типа усилителя JeckVi Электроника - это просто 16 22.02.2010 17:49
Программное определение типа EEPROM Jendoss Микроконтроллеры, АЦП, память и т.д 3 24.03.2009 18:44


Часовой пояс GMT +4, время: 07:42.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.