Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/46: Рейтинг темы: голосов - 46, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 16.07.2011
Сообщений: 52

Время выполнения команд в STM8L и STM8S

07.02.2012, 12:18. Показов 8351. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Скажите пожалуйста, кто знает, один и тот же код на STM8S и STM8L при одинаковых частотах отличается временем выполнения? Одинаковые ли ядра в этих МК? Вопрос появился потому-что не могу завести DS18B20 с помощью дергания ногой на STM8S, при этом на STM8L все работает отлично. Не пойму в чем разница. Задержку делал для 8МГц смотря в отладчике на колличество затрачиваемых циклов. Вот подпрограмма задержки:
Code
1
2
3
4
5
6
7
8
9
10
11
#if(f_cpu == 8000000)
void delay_us(uint16_t us)  //Параматр us должен быть >=3
{
us-=2;
asm("nop");
asm("nop");
asm("nop");
asm("nop");
while(--us){asm("nop");asm("nop");}//8 тактов на цикл
}
#endif
delay_us выполняется ровно us*8 циклов. Т.е. при частоте 8МГц подпрограмма "задерживает" ядро на us микросекунд.
UART не могу использовать т.к. он занят. Осциллографа нету и логического анализатора тоже.
Уже много времени потратил на выяснение причины этой проблемы, и думаю, что проблема в задержке, по этому прошу помощи. В дизассемблере подпрограммы задержки и подпрограммы работы с 1-wire выглядят одинаково для разных серий МК.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2012, 12:18
Ответы с готовыми решениями:

что круче stm8l или stm8s???
насчет пониженного питания у л я в курсе а ккак насчет фарша обоих серий?

STM8S discovery как программатор STM8L
Сделал сегодня приятное открытие в документации к дискавери: Вот такая засада. А пробовал кто-то прошивать L-серию этим...

Неужели STM8S > STM8L при работе с USART?
Решил замастырить девайсик с RS485. Динные будет слать на комп. Озадачился работой USORT. При чтении ДШ на STM8S103 увидел волшебную...

8
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 36
09.02.2012, 07:43
Посмотри что то типа <util/delay.h> в разных средах - малость отличается, но работают всегда корректно.
Например, в винавр есть много функций _delay_ms(), _delay_us(), _delay_cycles ... и.т.п....
0
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
09.02.2012, 11:04
Цитата Сообщение от Yok40
Посмотри что то типа <util/delay.h> в разных средах - малость отличается, но работают всегда корректно.
Например, в винавр есть много функций _delay_ms(), _delay_us(), _delay_cycles ... и.т.п....
Нету такого у 8 серии.
0
0 / 0 / 0
Регистрация: 16.07.2011
Сообщений: 52
09.02.2012, 17:46
Дело в том, что один и тот же код в STM8L работает, а в STM8S - нет. Хотя в дизассемблере, я сравнивал, все, что касается работы с 1-wire одинаково. Может какие-то физические различия между портами? Хотя в RM схемотехнически они выглядят одинаково.
0
0 / 0 / 0
Регистрация: 21.08.2011
Сообщений: 1,057
14.02.2012, 03:41
Проверь конфигурацию тактового сигнала. По возможности, перепиши функцию задержки на таймере, а не НОПами. Еще неизвестно что придумает компилятор. Кстати, какая среда?
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 219
14.02.2012, 14:34
Простите этот пост: http://we.iosyitistromyss.ru/Diir/poche ... -stm8.html
0
0 / 0 / 0
Регистрация: 16.07.2011
Сообщений: 52
15.02.2012, 19:00
Цитата Сообщение от soumt_imobti
Проверь конфигурацию тактового сигнала. По возможности, перепиши функцию задержки на таймере, а не НОПами. Еще неизвестно что придумает компилятор. Кстати, какая среда?
Компилятор IAR. Датчики уже заработали. Повысил частоту ядра ровно в 2 раза и все сразу завелось. Но все равно остается вопрос не понятным, почему одна и таже задержка, которая даже в дизассемблере одинаковая, на STM8L выполняется одинаково с STM8S, хотя частоты у них настроены разные? STM8S медленнее, что ли? Или какая-то непонятная настройка тактовой частоты. Я в курсе, что в STM8S кроме предделителя для ядра есть еще и предделитель внутреннего HSI генератора. Пора приобретать осциллограф, а то так гадать можно долго.
0
0 / 0 / 0
Регистрация: 16.07.2011
Сообщений: 52
15.02.2012, 19:01
Цитата Сообщение от Omkit5o
Простите этот пост: http://we.iosyitistromyss.ru/Diir/poche ... -stm8.html
Посетил его. У автора используется МК с которым проблем у меня нету. Проблемы с серией S.
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 219
19.02.2012, 18:05
Цитата Сообщение от Vosyo
Цитата Сообщение от Omkit5o
Простите этот пост: http://we.iosyitistromyss.ru/Diir/poche ... -stm8.html
Посетил его. У автора используется МК с которым проблем у меня нету. Проблемы с серией S.
Гхм... Поржал, спасибо. Это ядро такое. S и L пофигу, у обоих время выполнения плавает. Если у вас сейчас всё работает, то не факт что после добавления "одного безобидого nopа в совершенно другой функции" всё будет и дальше работать. Будьте внимательнее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2012, 18:05
Помогаю со студенческими работами здесь

STM32F103 - время выполнения команд и их оптимизация
Добрый день! Пишу под STM32F103C8T6 в Visual Studyo 2013 использую плагин VisualGDB r5.1 На днях начал оптимизировать время...

Составьте программу, суммирующую штрафное время команд при игре в хоккей. Выводить на экран суммарное штрафное время обеих команд
1) Составьте программу, суммирующую штрафное время команд при игре в хоккей. Выводить на экран суммарное штрафное время обеих команд после...

Уменьшить время выполнения работы программы, увеличить скорость выполнения
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Уменьшить время выполнения работы программы, увеличить скорость выполнения
Подскажите, пожалуйста, как можно сократить время при компиляции, нужно не более 1 секунды, при некоторых данных выполняется дольше,...

Выполнения команд
Доброго времени суток. Интересует такой вопрос, можно ли как-то в приложение выполнять консольные команды по нажанию на кнопку например?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru