Jump to content

    
Сиг

STM8S003F3 не пишется бит UIE в TIM2_IER

Recommended Posts

Здравствуйте, коллеги!

Отладил программу на контроллере STM8S105K4, перенёс потом её на STM8S003F3 и обнаружил, что готовая программа не работает. С помощью отладчика увидел, что не работает таймер TIM2. Проверил биты конфигурации, бит UIE (разрешение прерывания от TIM2) не установлен. Проверяю отладчиком, UIE ни в какую не устанавливается. Попытался записать число 0xFF во все доступные биты регистра IER. Ни в один бит ничего не записалось. :dash2: Записывал этот бит вручную в окне "Registers", но прерывание не появилось. Причём пытался всё это делать и в симуляторе, но яйца те же... Кто-нибудь сталкивался с такими чудесами? Что может быть?

Среда - IAR, отладчик - ST-LINK/V2/01-0, контроллер - STM8S003F3.

Share this post


Link to post
Share on other sites

Я пользовался RM0016 Reference manual (STM8S Series and STM8AF Series 8-bit microcontrollers). Карты памяти, указанных мною контроллеров, идентичны.

Share this post


Link to post
Share on other sites

Да, тактирование от внутреннего ВЧ-генератора подключено. ВЧ-генератор работает, судя по тому, что АЦП по двум каналам производит одно измерение сразу после запуска отладчика, а потом измерения прекращаются из-за неработающего таймера. :cray:

Share this post


Link to post
Share on other sites

Всё, коллеги, отбой! Огромное спасибо коллеге Arlleex за участие!

Проблема оказалась в следующем. В файле проекта stm8s.h после переконфигурации его выводов под контроллер STM8S003F3 мной, из-за отсутствия опыта работы с ним, было забыто закомментировать строку

 

#define STM8S105 */      /*!< STM8S Medium density devices 

 

и раскомментировать строку

 

#define STM8S003 */      /*!< STM8S Value Line Low density devices */

Edited by Сиг

Share this post


Link to post
Share on other sites

очень рекомендую посмотреть best practice, хотя бы на том же ютубе гитхабе

https://github.com/Hoksmur/pts/blob/main/stm8/Makefile#L34

STM8S003 лучше объявлять не в исходнике, а при сборке в качестве аргумента си-компилятору:

sdcc -DSTM8S003

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.