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

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

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

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

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

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


 
Опции темы
Непрочитано 24.10.2014, 14:11  
Mike121234
Вид на жительство
 
Аватар для Mike121234
 
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 346
Сказал спасибо: 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.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

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

Сообщение от Boba_spb Посмотреть сообщение
Переменные делай uint32_t - и программа будет короче и работать быстрее
Не, я в 16-разрядном режиме работаю (Thumb)
Проверял, что short, что char - одинаковый код по размеру....
Ну а скорость не проверял мне не надо....
Mike121234 вне форума  
Непрочитано 24.10.2014, 16:56  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 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.RU
 
Регистрация: 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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

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

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

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

после того, как не получилось сделать микросекундную задержку даже циклами уже и не знаю, что может тут не получится))
В общем спасибо за совет, завтра попробую
swat24 вне форума  
Непрочитано 29.10.2014, 01:11  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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, время: 11:14.


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