![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,422
|
![]()
hexor_boo, да, вроде можно и без packed в данном случае, но тогда никто не узнает про это ключевое слово
![]()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#12 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,918
|
![]()
В примере BDA, который просто показывает как использовать вариантную запись в Паскале/Дельфи служебное слово packed не нужно. Но для кода ТС оно нужно. Почему нужно, долго объяснять.
|
![]() |
![]() |
![]() |
#13 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,422
|
![]()
Намекните, все-таки, почему нужно. Вроде все поля и так выровнены и не требуются байты выравнивания.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#14 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,918
|
![]() Цитата:
Почему для ТС нужен packed. По его словам он получает данные по СОМ-порту. Ясен пень от некоей внешней железяки на микропроцессоре. А микропроцессоры не знают и не хотят знать про какое-то там выравнивание. У них слишком мало памяти, чтобы ещё тратить её на выравнивание. |
|
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,693
|
![]()
Микроконтроллер тут не при чём. Обмен идёт пакетами, а это - байтовый массив. И всё. А уж принимающая сторона (комп) пакет рассовывает по переменным, определяемым протоколом. Поэтому выравнивание - только на принимающей стороне.
Кстати, выравнивание, хоть и в небольшой степени, в МК использется - по крайней мере, в знакомых мне AVR. К примеру - словная адресация флеши и байтовая - ОЗУ. Желая поместить константу во флеш, адрес поневоле делаем чётным. Кстати, в настоящее время в периферийных устройствах микропроцессоры в чистом виде уже не используются - на смену пришли их младшие братья: микроконтроллеры. Это был промежуточный этап. ----------------- Мало памяти... 192k это много или мало, а если мало, то для кого? И это ещё не топовая модель. А нормальный МК сейчас легко уделывает какой-нибудь Пентиум 90-х годов. Последний раз редактировалось digitalis; 06.12.2024 в 14:40. |
![]() |
![]() |
![]() |
#16 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,918
|
![]()
А зачем что-то рассовывать на принимающей стороне, если при packed всё само собой ляжет туда куда надо?
|
![]() |
![]() |
![]() |
#17 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,918
|
![]()
Вот освободился от повседневной текучки.
Цитата:
О каких пакетах идёт речь? Не путаете ли вы работу с СОМ-портом с работой с другими последовательными интерфейсами? |
|
![]() |
![]() |
![]() |
#18 | |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,693
|
![]()
Я не вижу принципиальной разницы между работой с СОМ-портом (хорошо мне знакомой) с работой с другими последовательными интерфейсами. В любом случае это - последовательность байт, ну или битовая последовательность фиксированной длины, и что-то там выравнивать на линии связи не приходится.
Цитата:
Напримр: <старт><адрес - 2 байта><команда - 2 байта><float - 4 байта><fixed - 2 байта>...<CRC-2 байта> . Мы не знаем, так ли это у ТС, но в общем случае чаще встречаются пакеты переменной структуры. И хорошо, если они у нас всегда нормально улягутся на единственный packed record. Но это уже сугубо абстрактный разговор, ТСа packed record вполне удовлетворил, я думаю. Последний раз редактировалось digitalis; 07.12.2024 в 21:37. |
|
![]() |
![]() |
![]() |
#19 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,918
|
![]() Цитата:
Вот например из моего раннего: Код:
|
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Округлить single | nXs | Общие вопросы Delphi | 4 | 01.03.2012 11:59 |
что такое single | Shinobig | Общие вопросы C/C++ | 12 | 22.01.2012 21:36 |
HEX переводим в Single | Yrok | Общие вопросы Delphi | 6 | 04.03.2009 17:00 |
Single to String? | Blondinka | Общие вопросы Delphi | 7 | 24.09.2007 17:36 |