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

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

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

Сообщение Z_h_e »

shads писал(а):, поэтому VECT0SPR[1:0] это биты не 0-го прерывания
Не усложняйте и не путайте. Как раз нулевого и все соответствует, ничего не надо вычитать. Как я уже и говорил, таблицу векторов нужно смотреть в ДШ. Немаскируемые прерывания RESET и TRAP номером не обзавелись, лежат выше нулевого вектора и имеют приоритет выше левела 3 по умолчанию и изменить это нельзя.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

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

Сообщение shads »

Ну да, если по ДШ то соответствует... а я чет ориентировался по IAR файлу, а там ресет это нулевой, поэтому так закрутил )))
Реклама
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

значит для TIM2 должно быть не так:

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

ITC_SPR4 &= ~(0x0C); 
а так:

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

ITC_SPR4 &= 0xBF; 
да?
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

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

Сообщение Z_h_e »

Вечером погляжу, сейчас на телефоне. Контроллер то какой?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Эиком - электронные компоненты и радиодетали
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

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

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

Сообщение Z_h_e »

Вектор прерывания TIM2_UPD/OVF - №13d. Согласно RM16 , приоритет для данного вектора лежит в ITC_SPR4 3:2. Чтобы установить уровень приоритета 2 ( т.е. I1I0=0b00) нужно сделать так.

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

ITC_SPR4 &=0b11110011;
ITC_SPR4 &=0xF3;
ITC_SPR4 &= ~0x0C; 
Все три записи абсолютно идентичны, пользуйтесь той которая Вам удобнее. Можно еще и задефайничть что-нибудь.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

ну записи таки не идентичны, но сработают одинаково если другие биты не менялись после ресета
но это не для спора

скажите как понять номер вектора, откуда следует, что это 13-й вектор?
в каком месте RM0016 это описано?
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

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

Сообщение Z_h_e »

Уважаемый, третий раз говорю. Это написано в ДШ. И RM16 туда же посылает, раздел 6.8 Interrupt mapping.
axillent писал(а):ну записи таки не идентичны,
Для препроцессора абсолютно одинаковые константы, для меня тоже. Можно еще в десятичном виде константу написать :shock: , но это изврат
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

сорри я туплю) я почему то прочитал первые две строки как =, а не как &=

раздел 6.8 очень короткий) посылает в даташит на МК
значит ли это, что одно и тоже прерывание может иметь разный номер вектора для разных МК даже внутри линейки STM8S?

для STM8S003F3 нашел:
Изображение
2017-09-27_16-31-55.png
(207.33 КБ) 1133 скачивания
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

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

Сообщение shads »

[uquote="axillent",url="/forum/viewtopic.php?p=3193297#p3193297"]значит ли это, что одно и тоже прерывание может иметь разный номер вектора для разных МК даже внутри линейки STM8S?[/uquote]Скорее всего нет, просто на более крутых контроллерах будут добавляться дополнительные прерыания.

Вот расписал для STM8S103 табличку распределения битов приоритетов по прерываниям

Кстсти еще где то видел такую запись, тоже вроде удобно
ITC_SPR4 &= ~(BIT(3) | BIT(2));
Вложения
interrupt priorities.pdf
(27.79 КБ) 293 скачивания
Последний раз редактировалось shads Ср сен 27, 2017 16:19:29, всего редактировалось 1 раз.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

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

Сообщение Z_h_e »

axillent писал(а):посылает в даташит на МК
Я три раза предлагал туда сходить :), но поверили только RM0016.
axillent писал(а):что одно и тоже прерывание может иметь разный номер вектора для разных МК даже внутри линейки STM8S?
Сомнительно, но всегда надо проверять. Есть же еще, например STM8AF. Но там вроде подобное, только поболее векторов.

Добавлено after 3 minutes 23 seconds:
shads писал(а):Вот расписал для STM8S103 табличку распределения битов приоритетов по прерываниям
ИМХО, удобнее пользоваться таблицей из ДШ. Бросилось в глаз, что вектор TLI пропущен.

Лучше уж какой-нибудь макрос забубекать.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

вопрос про IAR

одна и таже версия установлена на десктопе вин8.1 и на ноутбуке под виртуальной машиной на вин10
почему то по разному работает Ident, хотя настройки по картинке ниже одинаковые
не удобно когда редактируешь одни и теже файлы то там то там

можно как то исправить?
СпойлерИзображение
2017-11-01 12.09.47 pm.png
(103.65 КБ) 579 скачиваний
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

решения видимо нет))

а вот вопрос
если стимвольную строку указываешь при вызрве функции она попадет во флэш или в ram?
Типа такого

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

Print("test");
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

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

Сообщение Z_h_e »

axillent писал(а):если стимвольную строку указываешь
Это же от компилятора зависит, лучше всего проверить в дизассеблере по факту.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

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

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

Сообщение Z_h_e »

Предположу, что реальный параметр передачи в функцию будет указатель на строку. Поглядев значение указателя, можно легко понять на какую область памяти он указывает.

Добавлено after 2 hours 12 minutes 19 seconds:
Можно закомментарить функцию и поглядеть объем используемой ОЗУ. Смысла нет тут использовать ОЗУ, не должен компилятор так явно тупить.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

в отладчике адрес строки 0xA18C, флэш стартует с 0x807F
так что выходит что это флэш
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

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

Сообщение axillent »

stm8s103f3 в даташите написано 96 bit unique id
как его прочитать в программе?

посмотрел даташит, RM016, RM044 - нигде про это не нашел
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

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

Сообщение Z_h_e »

Ну вот же
СпойлерИзображение
Вложения
STM8 UID.gif
(72.97 КБ) 359 скачиваний
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

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

Сообщение arkhnchul »

[uquote="axillent",url="/forum/viewtopic.php?p=3252030#p3252030"]посмотрел даташит, RM016, RM044 - нигде про это не нашел[/uquote]

ЗЫ синхронно так)
[uquote="Z_h_e",url="/forum/viewtopic.php?p=3252185#p3252185"]Ну вот же[/uquote]
не совсем, ID - это lot number
Вложения
STM8S103.pdf.jpg
(209.92 КБ) 463 скачивания
Ответить

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