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

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

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

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

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

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


 
Опции темы

Изучаем STM32 Cortex M3

Непрочитано 24.10.2014, 14:11  
Mike121234
Вид на жительство
 
Аватар для Mike121234
 
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 347
Сказал спасибо: 67
Сказали Спасибо 8 раз(а) в 7 сообщении(ях)
Mike121234 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от niXto Посмотреть сообщение
Однако из-за одной этой переменной компилятор не сможет использовать занятый регистр в других местах программы - тех же циклах, в итоге потери памяти и быстродействия могут быть ещё больше. У стм32 не настолько много регистров, чтобы выделять один из них под глобальную переменную
Да у меня программа по сути очень простая.
Никаких особых вычислений деления и пр. излишеств, никаких работ с 32 и 64 разрядами.
ШИМ туда, ШИМ сюда. Кнопочку нажали, кнопочку отжали.

Куча подпрограмм даже без локальных переменных.

Так что все регистры не пользуются.

Хотелось код сократить. Уж очень разросся.
Стал анализировать - if занимает очень много и при работе с переменными размещенными в ОЗУ отжирает колоссально.

Просто мне не стоит забывать что одно и тоже написанное для 8-ми разрядного контроллера и 16-ти, если код простой (основные переменные типа char и тупо складываем 8-ми разрядные числа без переноса напр.)
и работаем с портами для 16-ти разрядного займет больше памяти.
Естественно это в общем случае.

Казалось что 16кБ хватит на все... Оно конечно хватит. ужму.
С 8-мью разрядами в моем случае вероятно так бы и произошло Хватило точно.
Реклама:

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

Переменные делай uint32_t - и программа будет короче и работать быстрее
Boba_spb вне форума  
Непрочитано 24.10.2014, 16:27  
Mike121234
Вид на жительство
 
Аватар для Mike121234
 
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 347
Сказал спасибо: 67
Сказали Спасибо 8 раз(а) в 7 сообщении(ях)
Mike121234 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Boba_spb Посмотреть сообщение
Переменные делай uint32_t - и программа будет короче и работать быстрее
Не, я в 16-разрядном режиме работаю (Thumb)
Проверял, что short, что char - одинаковый код по размеру....
Ну а скорость не проверял мне не надо....
Mike121234 вне форума  
Непрочитано 24.10.2014, 16:56  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Mike121234 Посмотреть сообщение
Не, я в 16-разрядном режиме работаю (Thumb)
Вам не про режим говорят, да и нет у STM32 ARM-режима, только Thumb.

Сообщение от Mike121234 Посмотреть сообщение
Проверял, что short, что char - одинаковый код по размеру....
Ну а скорость не проверял мне не надо....
Переменные на 32-разрядном МК лучше с точки зрения производительность и прочего делать 32-разрядными.
_Артём_ вне форума  
Непрочитано 28.10.2014, 23:25  
swat24
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Добрый день. У меня небольшая проблема с задержками на процессоре STM32F051C8. Через таймер можно выставить задержки от 1 мс. (частота таймера 48 мгц, максимум). Задержки в мкс выставить не получается, минимум около 1 мс и больше. Даже если описывать задержки через циклы то появляется очень большая нелинейность. (например разница между одним прохождением цикла и 2-3 не в два - три раза соответственно, а на пару мкс. т.е. для нужных задержек надо выбирать количество прохождения циклов методом проб... что не радует). Как можно реализовать подключение к датчику температуры DS18B20 через 1-wire не используя USART? Пробовал разные библиотеки и не одна из них не работает из-за невозможности выставить необходимые задержки в мкс... Сам датчик общается, смотрел осциллографом, датчик данные передает, но МК не принимает...
Завтра попробую разобраться с USART, но не очень бы хотелось его использовать... Странно, что такой относительно мощный МК не может выставить задержку в мкс... хотя на пике, даже не очень производительном, все решалось очень просто. Подскажите как вообще можно выставить задержки в МК? или не мучаться, а использовать сразу юсарт?
swat24 вне форума  
Непрочитано 28.10.2014, 23:38  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

swat24, процедуры delay_us и delay_ms есть в файле systic.c
Работают идеально.
Easyrider83 вне форума  
Непрочитано 29.10.2014, 00:09  
swat24
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

я этот файл нашел только в примере, в библиотеках его нет. Где его вообще брать? Попробую с примером, если получится отпишу
swat24 вне форума  
Непрочитано 29.10.2014, 00:38  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Чего там может не получится-то?
Easyrider83 вне форума  
Непрочитано 29.10.2014, 01:05  
swat24
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

после того, как не получилось сделать микросекундную задержку даже циклами уже и не знаю, что может тут не получится))
В общем спасибо за совет, завтра попробую
swat24 вне форума  
Непрочитано 29.10.2014, 01:11  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Минимально необходимый тайм-слот для 1-wire 10мкс, вроде. Это даже для STM8 без всякого бит-банга более, чем достаточно. Куда форум катится?
Easyrider83 вне форума  
 
Опции темы

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

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, время: 09:19.


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