Программирование STM8

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Chettuser

Сообщение Chettuser »

Как в IAR включить отображение размера кода?
У меня свежеустановленный ничего не пишет.
Изображение
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Попробовал свои IAR. В файле *.map есть эта инфа.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Chettuser писал(а):Как в IAR включить отображение размера кода?
Изображение
Chettuser

Сообщение Chettuser »

Исчо вопросик.
Пробовал на вкус SPL для STM8S и решил перебраться с него.
Подключил #include "iostm8s003f3.h"
и тут полезли ошибки:
Изображение
На какой он тут синтаксис ругается, если это его родные файлы и я туда не лез?
:dont_know:
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Аватара пользователя
Сообщения: 960
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда

Сообщение GARMIN »

Смотри всегда на источник первой ошибки. Потом может просто лесенкой посыпаться.
Контактная информация:
Реклама
Chettuser

Сообщение Chettuser »

Обе утыкаются в эту строку. :(
Ладно, отложу пока STM8 в сторону. Есть другие дела.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Гляньте вот тут.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Chettuser

Сообщение Chettuser »

Спасибо.
И ведь последняя версия стоит, неужели поправить не удосужились за это время? Ещё и файлы залочили от изменения. Пипец! :(
Открыл глаза
Сообщения: 61
Зарегистрирован: Пн мар 31, 2014 22:42:50
Откуда: Харьков

Сообщение Taras1 »

Подскажите, как очистить stm8 в ST Visual Programmer
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

При скромном опыте программирования данного камня поделюсь опытом. Иногда камень переставал отвечать. Помогало в нужный момент нажатия резет. В stvd трудно было попасть в этот момент, в iar легко
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Еще легче попадать в резет, если завести его от программатора отдельным проводом на соответствующую ногу МК и в настройках среды прописать under reset. Тогда среда сама будет попадать в этот резет, причем, каждый раз удивительно точно. :)
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Сообщение axillent »

знает ли кто способ как отлаживать с одного компьютера паралельно два STM8?

IAR у меня хватает пераый программатор и второй игнорирует
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

Всем привет. Управляю 4мя ДПТ через PWM с помощью таймеров 1 и 2. Параллельно опрашиваю АЦП. Бывает запуск АЦП совпадает с фронтом одного из PWM'ов. Как их сихнронизировать?
Были идеи использовать режим счёта up+down, как бы добавляя еще одну метку в сигнал ШИМа где-нибудь посередине, чтобы запустить АЦП, но с этого таймера выведено только 3 канала у меня.

Добавлено after 1 minute 15 seconds:
axillent писал(а):знает ли кто способ как отлаживать с одного компьютера паралельно два STM8?

IAR у меня хватает пераый программатор и второй игнорирует
Попробуй virtualbox.
Встал на лапы
Аватара пользователя
Сообщения: 101
Зарегистрирован: Пт окт 03, 2014 14:50:06

Сообщение Jeka_M »

Читаю reference manual на stm8s, раздел по таймерам. Вот написано, что у advanced control timer прескалер может быть: any integer from 1 to 65536. То есть, любое целое число в диапазоне 1 - 65536. Это понятно. А вот у general purpose timer прескалер может быть: any power of 2 from 1 to 32768. Тут непонятка. Имеется в виду число кратное двойке - 2, 4, 6, 8, 10, 12... или степень двойки - 2, 4, 8, 16, 32, 64 ?

UPD: Блин, туплю... "power of 2" - это же степень двойки? Получается всего 16 значений от 1 до 32768.
UPD2: Ага. И записывается в регистр не само значение прескалера (как в advanced control timer), а степень двойки. Например для прескалера 128 нужно записать 7 в регистр, т.к. 2^7=128
Встал на лапы
Аватара пользователя
Сообщения: 101
Зарегистрирован: Пт окт 03, 2014 14:50:06

Сообщение Jeka_M »

Эм... А кто-нибудь сталкивался с таким: на STM8S003F3 почему-то не работают внутренние подтягивающие резисторы. Конфигурирую пины PB4, PB5 в IAR:

Код: Выделить всё

PB_DDR_bit.DDR4 = 0;// PB4 Input
PB_DDR_bit.DDR5 = 0;// PB5 Input

PB_CR1_bit.C14 = 1; // PB4 Input with pull-up
PB_CR1_bit.C15 = 1; // PB5 Input with pull-up

PB_CR2_bit.C24 = 0; // PB4 EXTI disabled
PB_CR2_bit.C25 = 0; // PB5 EXTI disabled
Проверяю в дебагере, биты C14 и C15 в регистре PB_CR1 устанавливаются в единицу. Но не смотря на это, биты IDR4 и IDR5 в регистре PB_IDR хаотично переключаются. Когда ставлю внешний подтягивающий резистор - всё работает. Не пойму, что не так. То ли я где-то косячу, то ли что-то с МК. В Errata Sheet заглядывал, там про pull-up ничего не сказано.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Кажется эти выхода true open drain.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Встал на лапы
Аватара пользователя
Сообщения: 101
Зарегистрирован: Пт окт 03, 2014 14:50:06

Сообщение Jeka_M »

Точно, спасибо!

Сначала было подумал, каким боком true open-drain, если используется режим входа? Но потом внимательно посмотрел даташит и таки да: PB4 и PB5 - true open-drain. А чуть ниже пометка: "P-buffer, weak pull-up, and protection diode to VDD are not implemented". И это два единственных пина с true open-drain.

Всё никак не привыкну после AVR, что у STM надо обращать внимание на особенности разных ножек.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 960
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда

Сообщение GARMIN »

Так у них может быть питание 3,3В, а работают с I2C устройством от 5В. Вот в этом случае open drain выручает.
Мне как раз понадобился такой режим - настройка внешнего устройства по I2C.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Сообщение ptr128 »

Разбираюсь с STM8S_StdPeriph_Lib
Файл stm8s_tim2.h, начиная со строки 251:

Код: Выделить всё

/** TIM2 Flags */
typedef enum
{
  TIM2_FLAG_UPDATE                   = ((uint16_t)0x0001),
  TIM2_FLAG_CC1                      = ((uint16_t)0x0002),
  TIM2_FLAG_CC2                      = ((uint16_t)0x0004),
  TIM2_FLAG_CC3                      = ((uint16_t)0x0008),
  TIM2_FLAG_CC1OF                    = ((uint16_t)0x0200),
  TIM2_FLAG_CC2OF                    = ((uint16_t)0x0400),
  TIM2_FLAG_CC3OF                    = ((uint16_t)0x0800)
}TIM2_FLAG_TypeDef;
Файл stm8s_tim2.c, функция TIM2_ClearFlag, строка 1110:

Код: Выделить всё

TIM2->SR2 = (uint8_t)(~((uint8_t)((uint8_t)TIM2_FLAG >> 8)));
У меня устойчивое ощущение, что должно быть:

Код: Выделить всё

TIM2->SR2 = (uint8_t)(~((uint8_t)(TIM2_FLAG >> 8)));
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт ноя 15, 2016 12:48:20

Сообщение john1770 »

Все правильно сначала сдвинуть потом преобразовать
иначе будет ноль
Ответить

Вернуться в «Разные вопросы по МК»