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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Yusff
Встал на лапы
Сообщения: 124
Зарегистрирован: Сб окт 20, 2012 14:07:16

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

Сообщение Yusff »

Все получилось. Спасибо! :beer:
Zugus
Родился
Сообщения: 2
Зарегистрирован: Вт июн 03, 2014 14:59:22

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

Сообщение Zugus »

Здравствуйте. Подскажите пожалуйста, каким образом после сброса МК STM8S003 задается альтернативная функция на его ножках.
Например, для корпуса LQFP32 на порту PC1 (Pin20) требуется организовать выход таймера TIM1 канал CH1 (по даташиту это возможно).
Никак не могу найти в явном виде, как происходит выбор альтернативной функции или порта ввода вывода на отдельно взятой ноге микроконтроллера.
Как, например, это делается STM32.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

PC1 наверное pin18
Capture/compare enable register 1 (TIM1_CCER1)
Bit 0 CC1E: Capture/compare 1 output enable
CC1 channel is configured as output:
0: Off - OC1 is not active. OC1 level is then a function of the MOE, OSSI, OSSR, OIS1, OIS1N and
CC1NE bits.
1: On - OC1 signal is output on the corresponding output pin depending on the MOE, OSSI, OSSR,
OIS1, OIS1N and CC1NE bits.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

не сходится что-то с вашими словами
в STM8S003K3 LQFP32
PIN 20 - PC3 (TIM1_CH3)
PIN18 - PC1(TIM1_CH1)
и все это альтернативные функции вывода, без ремапа. Требуется лишь включить требуемую доп. функцию периферии. Ремап не требуется.
Про ремап можно прочитать в даташите на конкретный контроллер. Он задается в разделе Option Bytes
Ставим плюсы: )
Zugus
Родился
Сообщения: 2
Зарегистрирован: Вт июн 03, 2014 14:59:22

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

Сообщение Zugus »

С ножкой - опечатка вышла. Надо было надо так PIN18 - PC1(TIM1_CH1).
Теперь стало ясно. Спасибо.
Аватара пользователя
Yuri_93
Вымогатель припоя
Сообщения: 505
Зарегистрирован: Пт окт 15, 2010 10:26:31
Откуда: Украина

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

Сообщение Yuri_93 »

Подскажите пожалуйста учебник для начинающего осваивать STM8 (на русском языке)
и какой компилятор лучше использовать (из тех к которым есть crack в сети или которые бесплатные)
ССтанислав
Это не хвост, это антенна
Сообщения: 1355
Зарегистрирован: Вт май 20, 2014 18:14:20
Откуда: Белгород
Контактная информация:

Проблемы с таймером 4 у stm8s103f2

Сообщение ССтанислав »

День добрый.
Наступил на грабли на ровном месте.
Начинаю разбираться с STM8. Использую "ST Visual Develop" + Cosmic8 + библиотеку "STM8S Firmware Library ".
Написал тестовую программу для таймера TIM4.
Запускаю ее на кристалле stm8s105k6 - работает, на stm8s103f2 - не хочет ни в какую :(
Делаю все в точности как в хелпе на библиотеку + смотрел на этом сайте статью про таймеры.
В чем может быть проблема?
Дорогу осилит идущий.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение ibiza11 »

Критерий определения исправности работы какой?
Лучше бы Вы код привели. По линейке STM8S все таймеры с соответствующими номерами работают одинаково.
Ставим плюсы: )
ССтанислав
Это не хвост, это антенна
Сообщения: 1355
Зарегистрирован: Вт май 20, 2014 18:14:20
Откуда: Белгород
Контактная информация:

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение ССтанислав »

ibiza11 писал(а):Лучше бы Вы код привели.

Хорошо.

main.c
// Инициализация таймера
TIM4_DeInit();
TIM4_TimeBaseInit(TIM4_PRESCALER_64, 0x9F);
TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
TIM4_Cmd(ENABLE);
enableInterrupts();
TIM4_Cmd(ENABLE);

stm8s_it.c
// собственно само прерывание
void TIM4_UPD_OVF_IRQHandler(void) interrupt 23
{
uFlag++;
TIM4_ClearITPendingBit(TIM4_IT_UPDATE);
}

ibiza11 писал(а):Критерий определения исправности работы какой?

запуская среду в режиме "debug" и смотрю переменную uFlag. Собственно все.
stm8s105k6 - переменная "мельтешит", выдавая разные числа, что собственно понятно, так как дебугер отлавливает переменную в произвольный момент времени.
stm8s103f2 - uFlag = 3 - ВСЕ время.
Дорогу осилит идущий.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение ibiza11 »

как объявлена uFlag?
Ставим плюсы: )
ССтанислав
Это не хвост, это антенна
Сообщения: 1355
Зарегистрирован: Вт май 20, 2014 18:14:20
Откуда: Белгород
Контактная информация:

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение ССтанислав »

main.c
u8 uFlag = 3;

stm8s_it.c
extern u8 uFlag;
Дорогу осилит идущий.
ССтанислав
Это не хвост, это антенна
Сообщения: 1355
Зарегистрирован: Вт май 20, 2014 18:14:20
Откуда: Белгород
Контактная информация:

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение ССтанислав »

Все, разобрался. Надо было в stm8s.h, раскомментарить определение 103 кристалла и закомментарить 105.
Дорогу осилит идущий.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение HHIMERA »

Да ничего там не надо...
В свойствах проекта в C Compiler в строке Preprocessor Definition просто вбить свой камень... всё...
"Я не даю готовых решений, я заставляю думать!"(С)
ССтанислав
Это не хвост, это антенна
Сообщения: 1355
Зарегистрирован: Вт май 20, 2014 18:14:20
Откуда: Белгород
Контактная информация:

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение ССтанислав »

HHIMERA писал(а):В свойствах проекта в C Compiler в строке Preprocessor Definition просто вбить свой камень... всё...

И так наверно можно.
Но я по наивности думал что определение #define STM8S103 в main.c более чем достаточно, тем более далее в stm8s.h
была конструкция вида:
#if !defined (STM8S208) && !defined (STM8S207) && !defined (STM8S105) && !defined (STM8S103) && !defined (STM8S903)
// #define STM8S208
/* #define STM8S207 */
// #define STM8S105
#define STM8S103
/* #define STM8S903 */
#endif

Так вот, пока я не определил STM8S103 здесь, ни фига ни чего не работало :(
а с учетом того что там и на вкладке "MCU Selection" мы выбираем процессор, так вообще все очень запущено :(

Сейчас проверил твой вариант - ДА, действительно так тоже можно :) Спасибо за ответ, хоть и слегка запоздалый :)
Меня теперь мучает другой вопрос - почему не сработало МОЕ определение? - хотя вопрос скорее риторический :)
Дорогу осилит идущий.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение dosikus »

ССтанислав писал(а):Меня теперь мучает другой вопрос - почему не сработало МОЕ определение? - хотя вопрос скорее риторический :)


Ну пАтАмуШта определенное в main и видеться будет только в main , а дефайн в опциях компиля во всем проекте .
Да и
на вкладке "MCU Selection" мы выбираем процессор
из другое оперы...
ССтанислав
Это не хвост, это антенна
Сообщения: 1355
Зарегистрирован: Вт май 20, 2014 18:14:20
Откуда: Белгород
Контактная информация:

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение ССтанислав »

dosikus писал(а):определенное в main и видеться будет только в main

а почему тогда определение в stm8s.h видно во всем проекте?
на вкладке "MCU Selection" мы выбираем процессор - из другое оперы...

Да, я понимаю для чего это сделано, я не совсем понимаю почему из этой вкладки разработчики не могли взять тип процессора?
Или на вкладке можно поставить к примеру 105, а Definition определить 103? вряд ли :)
Дорогу осилит идущий.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Проблемы с таймером 4 у stm8s103f2

Сообщение dosikus »

ССтанислав писал(а):а почему тогда определение в stm8s.h видно во всем проекте?


Не во всем, а только там где подключен stm8s.h :)))

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


Во первых это ключ для компилятора/линкера , а не дефайн препроцессора и ему же он не виден.

А так, весьма примечательно что ты этим интересуешься .
Почитай мануал на компиляторы , многое станет прозрачным ...

Или на вкладке можно поставить к примеру 105, а Definition определить 103? вряд ли


Можно, только будет ли потом работать - вот вопрос. :)))
Последний раз редактировалось dosikus Пн июн 30, 2014 10:05:38, всего редактировалось 1 раз.
Dingo
Родился
Сообщения: 7
Зарегистрирован: Чт янв 16, 2014 10:43:00

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

Сообщение Dingo »

Добрый день.
Возникла следующая проблема: не компилится библиотека "stm8s.h". Выводит ошибку:
Fatal Error[Pe035]: #error directive: "Unsupported Compiler!" /* Compiler defines not found */
Использую IAR версии 1.42.2.

Ошибка предположительно возникает в следующем участке кода:
#if defined(__CSMC__)
#undef _RAISONANCE_
#define _COSMIC_
#elif defined(__RCST7__)
#undef _COSMIC_
#define _RAISONANCE_
#else
#error "Unsupported Compiler!" /* Compiler defines not found */
#endif

Я понимаю, что какая-то ошибка с компилятором, но что именно может быть не так?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Dingo , на 100% - проект создается через ж...
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

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

Сообщение HHIMERA »

А где откопали этот "stm8s.h" ???
Должно быть...

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

/******************************************************************************/
/*                   Library configuration section                            */
/******************************************************************************/
/* Check the used compiler */
#if defined(__CSMC__)
 #define _COSMIC_
#elif defined(__RCST7__)
 #define _RAISONANCE_
#elif defined(__ICCSTM8__)
 #define _IAR_
#else
 #error "Unsupported Compiler!"          /* Compiler defines not found */
#endif
"Я не даю готовых решений, я заставляю думать!"(С)
Ответить

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