31.01.2013, 12:38
|
|
Временная регистрация
Регистрация: 18.07.2012
Сообщений: 73
Сказал спасибо: 4
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Boba_spb
|
Вас так память пугает? Тем ее 64 кило.
|
Да,действительно, я не прав. Глянул даташит другого камня, там флеши было 8 и 16 кБ. Ну хорошо, правда это меня не спасает. Все равно самая низкая цена, там где я могу реально их купить, у STM32F100.
Сообщение от Boba_spb
|
Если т.е. 1260001482 / 20000000 = 63 цикла на итеррацию.
На М0 48МГц тактовая - т.е это 1.5 мкс.
|
Что это доказывает? Речь не шла о быстродействии вычислений как таковой. Речь шла о точности. Быстродействие упомянулось единожды применительно к фильтрам.
Сообщение от Boba_spb
|
Ну и на последок специально для Вас - что б Вы понималии что такое суммирование 0.000001 в 32 и 64 битах (по Вашему это Double32, который (float), и Double).
А это на билдере и на гнутом С и на компе, а не микропрцессоре.
|
Снова вопрос, мне то что это доказывает? Это не я не понимал, что такое 32 разрядный double, это кто-то другой не знал. И изобретение это не мое, я привел документ известной фирмы.
Ну вот Вы провели работу, ну прокоментируйте свои же скриншоты. То есть точность вычислений с использованием 4 и 8 байтовых чисел с плавающей точкой одинакова? Не надо кидаться словами "специально для Вас", "думайте сами"... Почувтвуйте себя на высоте с точки зрения преподавателя перед студентом и расскажите, что я, как студент, должен увидеть на картинках.
|
|
|
|
31.01.2013, 12:48
|
|
Временная регистрация
Регистрация: 18.07.2012
Сообщений: 73
Сказал спасибо: 4
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Oleg Galizin
|
Например Вам был неизвестен факт отсутвия 32 битных операций на cortex-m3.
|
Да? Я бы хотел узнать в виде цитаты из моей писанины,на основании которой Вы сделали такой вывод. Если не трудно- поясните.
Сообщение от Oleg Galizin
|
Или например Вы не знаете сколько выделено под мантиссу и экспоненту в плавающих числах на pic и на arm.
|
Просьба к Вам, приведите мою цитату, отрицающую приводимые кем-то данные о формате чисел с плавающей точкой или наоборот, утверждающую что-то обратное.
Сообщение от Oleg Galizin
|
Мое личное мнение, неправильно делать какие либо выводы не зная предмета.
|
И последнее, если Вас не затруднит, приведите в пример мои неправильные выводы. Не надо так "вообще". Если Вы приведете конкретные примеры "непрвильных выводов", это будет мне "уроком" и я запомню надолго.
Какие именно неправильные выводы Вы имели ввиду? Можете даже вличку, это полезная информация.
|
|
|
|
31.01.2013, 12:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
В указанном Вами документе нет совета во float набрать сумму из 20000000 1e-6.
Это Вы мне советовали проверять и утверждали,стуча пяткой в грудь, что Double из 4 байт делает это на ПИКе с высокой точностью и "мгновенно". !!!!
Я это проверил на трех компиляторах и ни один не показал точности.
Вот хде у вас эта точность на ВАШЕМ ПИКе на ВАШЕМ DOUBLE из 4 байт?
Это Вы утверждаете что PIC шустрее и точнее STM.
Мы ж тоже кое что пишем на STM и знаем и скорострельность и сколько что кушает из памяти.
Хочется же справедливости, а не голого охаивания STM.
|
|
|
|
31.01.2013, 13:13
|
|
Временная регистрация
Регистрация: 18.07.2012
Сообщений: 73
Сказал спасибо: 4
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Boba_spb
|
Хочется же справедливости, а не голого охаивания STM.
|
Я предлагаю успокоиться, взять себя в руки и перейти к конструктивному диалогу. Хотя лично для меня в этом топике все началось с вопроса по I2C, проблема плавно перетекла в другое русло.
Этот поднятый вопрос напрямую касается STM32, планирую и далее его использовать, думаю, что и другим коллегам будет интересно увидеть реальное опровержение или подтверждение нашего диспута. Поскольку и Вам и мне хочется одинаково - справедливости, давайте еще раз проведем эксперимент с вычислениями малых числах в форматах плавающихчисел одинарной и двойной точности для STM32 и PIC24, огласим результат и сделаем общий вывод. Согласны? Тогда небудет повода кипятиться зазря.
|
|
|
|
31.01.2013, 13:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Да какие эксперименты надо проводить ?
Уж что такое плавающая арифметика известно.
И какая точность у 32 и 64 известно.
И даже знаем почему тестовые программы дают разные результаты на разных процессорах (случайное округление младшего бита ).
Что проверять ?
Америку что ль где открыли?
Чудес не бывает, как у маленьких детей.
|
|
|
|
31.01.2013, 13:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Кстати, глянуть бы на инициализацию GPIO, через который I²C общается. Может там собака порылась?
|
|
|
|
31.01.2013, 13:42
|
|
Временная регистрация
Регистрация: 18.07.2012
Сообщений: 73
Сказал спасибо: 4
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
За то, что принимаете участие в "моем" I2C - спасибо
Код:
|
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
GPIOA -› CRL = 0xF8F28888; GPIOA -› CRH = 0x00022AA7; GPIOA -› ODR = 0x0040;
GPIOB -› CRL = 0xFF200208; GPIOB -› CRH = 0x22288222; GPIOB -› ODR = 0x1801;
GPIOC -› CRL = 0x22222222; GPIOC -› CRH = 0x22222222; GPIOC -› ODR = 0;
GPIO_PinLockConfig(GPIOA, GPIO_Pin_All); GPIO_PinLockConfig(GPIOA, GPIO_Pin_All); GPIO_PinLockConfig(GPIOA, GPIO_Pin_All); |
|
|
|
|
31.01.2013, 14:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Тут глянул в пример работы по I2C и Ваш кусочек.
Есть не соответствие
// ========= у Вас
for (ByteCount = 0; ByteCount ‹ 255; ++ByteCount)
{
*OutData=I2C_ReceiveData(I2C1);
I2C_AcknowledgeConfig(I2C1, ENABLE);
++OutData;
}
*OutData=I2C_ReceiveData(I2C1);
I2C_AcknowledgeConfig(I2C1, DISABLE);
I2C_GenerateSTOP(I2C1, ENABLE); /* Send STOP Condition */
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY));
// ===== а это в примере
while(NumByteToRead)
{
if(NumByteToRead == 1)
{
/* Disable Acknowledgement */
I2C_AcknowledgeConfig(I2C1, DISABLE);
/* Send STOP Condition */
I2C_GenerateSTOP(I2C1, ENABLE);
}
/* Test on EV7 and clear it */
if(I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED))
{
/* Read a byte from the EEPROM */
*pBuffer = I2C_ReceiveData(I2C1);
/* Point to the next location where the byte read will be saved */
pBuffer++;
/* Decrement the read bytes counter */
NumByteToRead--;
}
}
//===================
Заметили разницу?
У Вас чтение последнего байта стоит чуток рановато.
|
|
|
|
31.01.2013, 14:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Если EEPROMка маленькая, и не очень часто в нее пишите, можно ее не ставить , а писать во флеш программы. Будет и быстрее и экономнее.
|
|
|
|
31.01.2013, 14:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,714
Сказал спасибо: 130
Сказали Спасибо 1,108 раз(а) в 527 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Верно.
AN2594 "EEPROM emulation in STM32F10x microcontrollers"
Если обьем данных невелик, а операции записи происходят нечасто - вполне можно кусок флеша отдать под эмуляцию EEPROM.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:24.
|
|