Программирование STM8
Re: Программирование STM8
Кто использует STM8S_StdPeriph_Lib , выложите пожалуйста stm8s_clk.h и stm8s_clk.с .
Которыми пользуетесь.
Которыми пользуетесь.
Re: Программирование STM8
Начал изучать ST8S.
Установил STVD+COSMIC. Помигал светодиодом. Ещё пара примеров ...
Мне нужно чтоб МК уснул - Halt и проснулся от AWU.
МК уходит в HALT и не возвращается оттуда ....
Код :
Файл Main:
Файл MAIN.H
Файл stm8_interrupt_vector.c
Компилируется без ошибок.
При включении мигает 1 раз ... и всё.
При отладке доходит до Halt далее тоже ничего не происходит.
Установил STVD+COSMIC. Помигал светодиодом. Ещё пара примеров ...
Мне нужно чтоб МК уснул - Halt и проснулся от AWU.
МК уходит в HALT и не возвращается оттуда ....
Код :
Файл Main:
Код: Выделить всё
#include <iostm8s103.h>
#include "macros_stm8.h" // Макросы для работы с портами
#include "stm8s.h"
// Светодиоды
#define LED1 B, 5, Low, NoPullUp, NoOpenDrain, NoSpeedLimit, NoIT
// Обработчик прерывания от AWU **************************
@far @interrupt void awu_irq_handler (void)
{
uint8_t St;
St = AWU_CSR1 ;
return;
}
// ЗАДЕРЖКА ************************************************
static void delay(uint32_t t) //функция задержки
{
while(t--) {}
}
// Инициализация периферии *******************************
static void init(void)
{
//установить коэффициент деления частоты HSI в 00 (без деления)
CLK_CKDIVR = CLK_CKDIVR & 0b11100111;
// Светодиоды =====
Pin_Out(LED1);
// Настройка AWU =====
CLK->PCKENR2 = CLK_PCKENR2_AWU;
AWU->APR = 0x3e; // /64
AWU->TBR = 0x0B; // 1s
AWU->CSR |= AWU_CSR_AWUEN; // разрешаю работу AWU
}
main()
{
init(); // Инициализируем периферию
enableInterrupts();
while(1)
{
Pin_On(LED1); // Вкл светодиод
delay(50000UL); //задержка
Pin_Off(LED1); // Откл светодиод
halt();
Pin_On(LED1); // Вкл светодиод (можно убрать)
delay(50000UL); //задержка
}
}
Код: Выделить всё
@far @interrupt void awu_irq_handler (void);
Код: Выделить всё
#include "main.h"
typedef void @far (*interrupt_handler_t)(void);
struct interrupt_vector {
unsigned char interrupt_instruction;
interrupt_handler_t interrupt_handler;
};
@far @interrupt void NonHandledInterrupt (void)
{
return;
}
extern void _stext(); /* startup routine */
struct interrupt_vector const _vectab[] = {
{0x82, (interrupt_handler_t)_stext}, /* reset */
{0x82, NonHandledInterrupt}, /* trap TLI */
{0x82, awu_irq_handler}, /* irq0 AWU */
{0x82, NonHandledInterrupt}, /* irq1 */
.....
};
При включении мигает 1 раз ... и всё.
При отладке доходит до Halt далее тоже ничего не происходит.
Одни хотели бы понимать то, во что верят, другие - поверить в то, что пнимают.
Re: Программирование STM8
[uquote="SV12",url="/forum/viewtopic.php?p=4366395#p4366395"]Мне нужно чтоб МК уснул - Halt и проснулся от AWU.
МК уходит в HALT и не возвращается оттуда ....[/uquote]
Отбой. Разобрался. Проблема решена.
МК уходит в HALT и не возвращается оттуда ....[/uquote]
Отбой. Разобрался. Проблема решена.
Одни хотели бы понимать то, во что верят, другие - поверить в то, что пнимают.
Re: Программирование STM8
подскажите как прошить новый с али STM8S103K3T6 в паяльнике GLOBAL CXG E60WT программатором SN-LINK V2 (тоже с али), а то в паяльнике приказал долго "жить" пожалуйста подскажите. SN-LINK V2 не видит STM8 пишет Can not conetct to target
Re: Программирование STM8
да фиг знает. надо убедиться, что правильно подключили, что на SWIM_DATA ничего лишнего и что там бегают сигналы... вариант, что приказ долго жить отдан навсегда - тоже не исключается, может, нечего уже прошивать-то... а может и программатор дядюшка Ляо прислал не совсем программаторный... есть живой нормальный микроконтроллер STM8 или 32?
Re: Программирование STM8
подключено платкой QFP32 to DIP DIP32 Converter Adapter Socket PCB SMD 0.8mm, и выводы к STM8 подключены через платку (чип не впаян ещё) 1 вывод- reset: вывод- GND; 6 вывод- "+5V"; 26 вывод- SWIM. К ST-LINK V2 подключены согласно надписи на корпусе, я уже этим ST-LINKом прошивал паяльник всё норм было, потом решил поменять прошивку и перепутал разъём программирования и полярность. других чипов нет, есть ещё один ST-LINK V2.
Re: Программирование STM8
[uquote="sergutka",url="/forum/viewtopic.php?p=4382600#p4382600"]1 вывод- reset: вывод- GND; 6 вывод- "+5V"; 26 вывод- SWIM[/uquote]
на VCAP (пятый пин) нужно еще ставить конденсатор. читайте документацию.
на VCAP (пятый пин) нужно еще ставить конденсатор. читайте документацию.
Re: Программирование STM8
Спасибо Вам попробую поставить
Re: Программирование STM8
попробовал не получается, не видит пишет нет подключения, пробовал ST Visual Programmer и STM32 ST-Link utility, не помогает. Прошил всё работает паяльник хорошо, спасибо всем Вам за советы. Спасибо огромное Proton78 за архив с прошивкой здесь на сайте, спасибо большое всем.
Re: Программирование STM8
Всем доброго дня.
Господа подскажите, как в ST Visual Develop можно блинк разогнать до 50 кГц?
на stm8s103 без внешнего кварца.
Если между вкл, выкл пина поставить: delay(1), получается очень большая задержка.
Если убрать delay(1), получается очень мало.
Может надо какую библиотеку поставить?
Играюсь на iostm8s103.h
Господа подскажите, как в ST Visual Develop можно блинк разогнать до 50 кГц?
на stm8s103 без внешнего кварца.
Если между вкл, выкл пина поставить: delay(1), получается очень большая задержка.
Если убрать delay(1), получается очень мало.
Может надо какую библиотеку поставить?
Играюсь на iostm8s103.h
-
Vladislav14
- Родился
- Сообщения: 16
- Зарегистрирован: Вс мар 27, 2022 15:49:30
Re: Программирование STM8
[uquote="Michka",url="/forum/viewtopic.php?p=4385336#p4385336"]Всем доброго дня.
Господа подскажите, как в ST Visual Develop можно блинк разогнать до 50 кГц?
на stm8s103 без внешнего кварца.
Если между вкл, выкл пина поставить: delay(1), получается очень большая задержка.
Если убрать delay(1), получается очень мало.
Может надо какую библиотеку поставить?
Играюсь на iostm8s103.h[/uquote]
В обработчике прерывания от любого таймера поставить что-то типа GPIO_WriteReverse(GPIOE, GPIO_PIN_5); (это для S105, в S103, возможно, другой порт и другой пин), затем включить прерывание по переполнению счётчика, задать параметры счётчика и всё будет точно и с любой возможной частотой.
Господа подскажите, как в ST Visual Develop можно блинк разогнать до 50 кГц?
на stm8s103 без внешнего кварца.
Если между вкл, выкл пина поставить: delay(1), получается очень большая задержка.
Если убрать delay(1), получается очень мало.
Может надо какую библиотеку поставить?
Играюсь на iostm8s103.h[/uquote]
В обработчике прерывания от любого таймера поставить что-то типа GPIO_WriteReverse(GPIOE, GPIO_PIN_5); (это для S105, в S103, возможно, другой порт и другой пин), затем включить прерывание по переполнению счётчика, задать параметры счётчика и всё будет точно и с любой возможной частотой.
Re: Программирование STM8
достаточно было любой таймер в режиме ШИМ настроить со скважностью 50%.
-
watchmaker
- Поставщик валерьянки для Кота
- Сообщения: 2177
- Зарегистрирован: Вс ноя 15, 2009 23:13:59
- Откуда: Харьков
- Контактная информация:
Re: Программирование STM8
Пытаюсь разобраться с даташитами на STM8L152. И сразу возникает куча вопросов.
1. Если в параметрах LCD драйвера задать duty 2, будут ли доступны COM2 и COM3 в качестве GPIO?
2. Возможна ли работа ШИМ в Active Halt режиме (низкочастотный кварц включён)? Или нужно обязательно держать ядро запущенным? Использование BEEP не особо удобно.
3. Самое главное. Можно ли сделать, чтобы разбросанные по всему чипу пины (PC0, PC1, PA2, PA3, PA6, PD1, PF0, PF1) генерировали одно и то же внешнее прерывание, а не несколько различных? Нужно будить чип из active halt по нажатию кнопок, подвешенных на эти пины, а потом уже обрабатывать каждое нажатие. Собрать их в один порт не получится, нужно 36 (если не 38) сегментных линий на дисплей.
И вообще, кому-нибудь здесь приходилось делать устройства на этом чипе с ЖК дисплеем?
1. Если в параметрах LCD драйвера задать duty 2, будут ли доступны COM2 и COM3 в качестве GPIO?
2. Возможна ли работа ШИМ в Active Halt режиме (низкочастотный кварц включён)? Или нужно обязательно держать ядро запущенным? Использование BEEP не особо удобно.
3. Самое главное. Можно ли сделать, чтобы разбросанные по всему чипу пины (PC0, PC1, PA2, PA3, PA6, PD1, PF0, PF1) генерировали одно и то же внешнее прерывание, а не несколько различных? Нужно будить чип из active halt по нажатию кнопок, подвешенных на эти пины, а потом уже обрабатывать каждое нажатие. Собрать их в один порт не получится, нужно 36 (если не 38) сегментных линий на дисплей.
И вообще, кому-нибудь здесь приходилось делать устройства на этом чипе с ЖК дисплеем?
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Re: Программирование STM8
1. Да.
2. Нет. Active-halt mode: In Active-halt mode, the main oscillator, the CPU and almost all peripherals are stopped.
Only oscillator or the LSE crystal is running to drive the SWIM, beeper, IWDG, RTC and LCD if enabled.
3. Никто не запрещает вектора прерываний направить на одну функцию.
И вообще да, многим приходилось, этим чипам сто лет в обед.
Добавлено after 51 second:
RM0031 Reference manual STM8L050J3, STM8L051F3, STM8L052C6, STM8L052R8 MCUs and STM8L151/L152, STM8L162, STM8AL31, STM8AL3L lines - это основной документ
2. Нет. Active-halt mode: In Active-halt mode, the main oscillator, the CPU and almost all peripherals are stopped.
Only oscillator or the LSE crystal is running to drive the SWIM, beeper, IWDG, RTC and LCD if enabled.
3. Никто не запрещает вектора прерываний направить на одну функцию.
И вообще да, многим приходилось, этим чипам сто лет в обед.
Добавлено after 51 second:
RM0031 Reference manual STM8L050J3, STM8L051F3, STM8L052C6, STM8L052R8 MCUs and STM8L151/L152, STM8L162, STM8AL31, STM8AL3L lines - это основной документ
-
watchmaker
- Поставщик валерьянки для Кота
- Сообщения: 2177
- Зарегистрирован: Вс ноя 15, 2009 23:13:59
- Откуда: Харьков
- Контактная информация:
Re: Программирование STM8
Понятно, придётся делать как на AVR. Бипер не очень подходит, там программируемый делитель только на 5 бит, мне желательно как минимум 8 (а лучше 16).Нет. Active-halt mode: In Active-halt mode, the main oscillator, the CPU and almost all peripherals are stopped.
Only oscillator or the LSE crystal is running to drive the SWIM, beeper, IWDG, RTC and LCD if enabled.
Тоже можно, лишь бы частые беспорядочные нажатия на кнопки не приводили к проблемам с прерываниями.3. Никто не запрещает вектора прерываний направить на одну функцию.
Уже нашёл, пытаюсь разобраться. Похоже, эта машина на голову выше тех AVR :-DRM0031
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
-
watchmaker
- Поставщик валерьянки для Кота
- Сообщения: 2177
- Зарегистрирован: Вс ноя 15, 2009 23:13:59
- Откуда: Харьков
- Контактная информация:
Re: Программирование STM8
Кому-нибудь в последнее время удавалось зарегистрировать Cosmic? Похоже, что в связи с известными событиями они всё прикрыли. Или есть ломаная версия?
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Re: Программирование STM8
я регистрировал. но меня достала мерзкая среда ST и поставил IAR. Отладчик у IAR в миллион раз лучше. После точки менюшка выпадает.
-
watchmaker
- Поставщик валерьянки для Кота
- Сообщения: 2177
- Зарегистрирован: Вс ноя 15, 2009 23:13:59
- Откуда: Харьков
- Контактная информация:
Re: Программирование STM8
Пытаюсь зарегистрировать через web (прямо в приложении) - просто ничего не происходит, через почту - никакого ответа нет. Насчёт IAR попробую, если найду правильный.
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Re: Программирование STM8
Ответ через почту приходит иногда в течение пары дней. Через веб сбои бывают, это да. Правильный IAR на Сахаре точка нет
-
watchmaker
- Поставщик валерьянки для Кота
- Сообщения: 2177
- Зарегистрирован: Вс ноя 15, 2009 23:13:59
- Откуда: Харьков
- Контактная информация:
Re: Программирование STM8
Честно, не пойму, где это, кроме рутрекера ничем раньше не пользовался, а там только древний 1.4.0.Правильный IAR на Сахаре точка нет
И ещё, возможно ли скомбинировать STVD-STVP + SDCC?
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...