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

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

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

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

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

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


 
Опции темы
Непрочитано 12.10.2012, 22:11  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Boba_spb Посмотреть сообщение
Но !!!! - если я доверяю оптимизатору и включаю его, то тут он и начинает изголяться. И код будет сгенерирован уже в зависимости от качества оптимизатора.
Сколько лет МК программирую, ниразу не было случая чтобы оптимизатор был виноват (хотя мало ли что - может и бывает такое).

Сообщение от Boba_spb Посмотреть сообщение
У всех компиляторов отключается оптимизатор !!!
Но при этом размер программы и время выполнения увеличиваются - или это вам не важно?
Реклама:
_Артём_ вне форума  
Непрочитано 12.10.2012, 22:48  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Boba_spb Посмотреть сообщение
Да для быстродействия пиши таблицу байт в Hex (всего то 512 байт при нынешних то флешах) и нет сдвигов никаких и счастьяяяяяяяя ... ))
Только с указателяи играйси ))
Ну покажите, как вы играетесь с таблицей без сдвигов
=GM= вне форума  
Непрочитано 12.10.2012, 23:05  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от =GM= Посмотреть сообщение
Ну покажите, как вы играетесь с таблицей без сдвигов
Проще записать в массив заранее подготовленные (сдвинутые) битовые маски. Такие же константные объекты, как и '\0' в заранее известном месте строки.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 12.10.2012, 23:05  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Ну например.
char Symbol_Low[]="0123456789ABCDEF1234567890ABCDEF0123456 и т.д";
char Symbol_High[]="000000000000000011111111111111112222222 и т.д";
далее смекаете ?

для тетрады даже старшие биты скидывать не надо

Symbol_low[ m] всегда равно Symbol_low [m&0xf] ;
для байта m - Symbol_low[m] и Symbol_high[m];

для double a
char unsigned *pt=(char unsigned *)&a - и далее 8 раз смотри для байта

Эт будет очень быстро;
Boba_spb вне форума  
Непрочитано 12.10.2012, 23:14  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Вот только где скорость преобразования в Нех требуется - никак не смекну, в поледовательный интерфейс какой c ASCIIшным протоколом гнать, так тама времени до дуры каналы медленные обычно.
Boba_spb вне форума  
Непрочитано 13.10.2012, 01:57  
polyname
Прописка
 
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
polyname на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

во-во. Там и таблиц никаких не нужно - все делается арифметикой, очень быстро, может даже быстрее таблицы:
Код:
char hex = (byte & 0xF) + '0';
if (hex › '9') hex += ('A' - '9' - 1);

Последний раз редактировалось polyname; 13.10.2012 в 02:04.
polyname вне форума  
Непрочитано 13.10.2012, 10:51  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Boba_spb Посмотреть сообщение
Ну например.
char Symbol_Low[]="0123456789ABCDEF1234567890ABCDEF0123456 и т.д";
char Symbol_High[]="000000000000000011111111111111112222222 и т.д";
далее смекаете ? Эт будет очень быстро;
Нет, далее не смекаю.

Мои возражения такие.

1. Чтобы из однобайтного числа (8 бит), например, 0хАВ, получить две шестнадцатиричные цифры (0x41=='A', 0x42=='В' действительно нужно составить две таблицы по 256 байт каждая. Всего 512 байт флеши.

2. Чтобы из двухбайтного числа (16 бит), например, 0хАВСD, получить четыре шестнадцатиричные цифры (0x41=='A', 0x42=='В', 0x43=='С', 0x42=='D') нужно составить четыре таблицы по 65536 байт каждая, всего 256 Кбайт.

3. Чтобы из четырёхбайтного числа (32 бита), например, 0хАВСD1234, получить восемь шестнадцатиричных цифр (0x41=='A', 0x42=='В', 0x43=='С', 0x42=='D', 0х31=='1', 0х32=='2', 0х33=='3', 0х34=='4'), нужно составить восемь таблиц по 4 Гбайт каждая, всего 32 Гбайта. Куда программу будем писать?
=GM= вне форума  
Непрочитано 13.10.2012, 11:21  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Ну, например для AVR ки, в R16 - уже байт
Вот три команды -
ldi ZH,(High)SymLow*2
mov ZL,R16
lpm R17,Z
и в R17 уже НЕХ.младшей тетрады
еще пару команд
ldi ZH,(High)SymHigh*2
lpm R18,Z
и в R18 уже НЕХ.старшей тетрады

Для очень прозорливых - табличку я размещу с нулевым младшим байтом в адресе.
Boba_spb вне форума  
Непрочитано 13.10.2012, 11:43  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Ну например
для 8 бйатного числа

char str[512];
double a;
..===============
char unsigned *ptD=&a;
short *ptS=(short *)&str;
short *ptT=(short *)Symbol_hex;
for(i=7;i.=0;i--)
{
*ptS++=ptT[ptD[7-i]];
}
..=====================
Специально для Вас еще одна Табличка Symbol_hex ={"0001020304 и .тд.) что б побыстрее работало.
ИТОГО три таблицй займут ровно 1024 байта !!!
Boba_spb вне форума  
Непрочитано 13.10.2012, 11:44  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

*ptS=ptT[ptD[i]]; - очепятка
Boba_spb вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot