Easyelectronics.ru

Электроника для всех
Текущее время: 21 ноя 2018, 13:17

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: stm8s внешние прерывания Halt();
СообщениеДобавлено: 17 май 2017, 12:14 
Только пришел

Зарегистрирован: 26 май 2016, 20:52
Сообщения: 6
Ковырялся года 2 назад c stm8s003. Прибор от батареек работал.
Удалось достичь потребления 3-5 мка. Контроллер будила собака
каждую 0,5 сек. Или прерывание по кнопке (фронт падение).
При входе и выходе как я помню нужно грамотно перекидывать
тактирование lsi hsi. отключать периферию, и внутри есть несколько
свтроенных стабилизаторов.
Кинь мыло. Если интересно скину куски проекта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s внешние прерывания Halt();
СообщениеДобавлено: 17 май 2017, 12:19 
Старожил

Зарегистрирован: 06 фев 2011, 15:16
Сообщения: 616
Откуда: Челябинск
GF1245 писал(а):
хорошо исправлю . проверю . но в spl был проект на иаре и там так как у меня

Цитата из руководства
Цитата:
Defining an interrupt function—an example
To define an interrupt function, the __interrupt keyword and the #pragma vector directive can be used. For example:
#include <iostm8s208mb.h>
#pragma vector = UART1_R_RXNE_vector /* Symbol from I/O */
__interrupt void MyInterruptRoutine(void)
{
/* Do something */
}
Note: An interrupt function must have the return type void, and it cannot specify any
parameters.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s внешние прерывания Halt();
СообщениеДобавлено: 17 май 2017, 12:23 
Заглядывает иногда

Зарегистрирован: 27 сен 2012, 17:14
Сообщения: 37
SOVA писал(а):
Проверь вот так:
Show

И ещё - вывод C3 для прерывания неудачный выбор:
-- PD7 is the Top Level Interrupt source (TLI), except for 20-pin packages on which the Top
Level Interrupt source (TLI) can be available on the PC3 pin using an alternate function
remapping option bit.

проверил вашу конструкцию . У меня 2 кнопки ту что на tli идет не трогал . В gpio_all_off(); стоит брекпоинт . При интенсивных нажатиях вылетает в брекпоинт. Глюк остался


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s внешние прерывания Halt();
СообщениеДобавлено: 17 май 2017, 12:30 
Заглядывает иногда

Зарегистрирован: 27 сен 2012, 17:14
Сообщения: 37
Bill писал(а):
GF1245 писал(а):
хорошо исправлю . проверю . но в spl был проект на иаре и там так как у меня

Цитата из руководства
Цитата:
Defining an interrupt function—an example
To define an interrupt function, the __interrupt keyword and the #pragma vector directive can be used. For example:
#include <iostm8s208mb.h>
#pragma vector = UART1_R_RXNE_vector /* Symbol from I/O */
__interrupt void MyInterruptRoutine(void)
{
/* Do something */
}
Note: An interrupt function must have the return type void, and it cannot specify any
parameters.


#pragma vector = 7
__interrupt void EXTint(void)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
flag_off = 1;
}


симптомы прежние


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s внешние прерывания Halt();
СообщениеДобавлено: 17 май 2017, 12:45 
Заглядывает иногда

Зарегистрирован: 27 сен 2012, 17:14
Сообщения: 37
повторю без команды halt(); все отлично . прерывание отрабатываются . проц не виснет . что может быть не так с halt();


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s внешние прерывания Halt();
СообщениеДобавлено: 17 май 2017, 13:30 
Заглядывает иногда

Зарегистрирован: 27 сен 2012, 17:14
Сообщения: 37
создал новый проект . скопировал только те файлы из main которые используются. РЕЗУЛЬТАТ РАБОТАЕТ . Копирую весь main.с с неиспользуемыми функциями и дефайнами переменными . РЕЗУЛЬТАТ НЕ РАБОТАЕТ. Что это было ? используемый объем данных одинаковый


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s внешние прерывания Halt();
СообщениеДобавлено: 17 май 2017, 15:17 
Заглядывает иногда

Зарегистрирован: 27 сен 2012, 17:14
Сообщения: 37
причину нашел (надеюсь)
в один момент вылезла такая бяка-нет полоски взуально ограничивающей код (незнаю как ее назвать пусть будет бяка)(скрин 1) занчения большого я этому не придал (все работало) . После обнаружения глюка(глюк вылез на конечном этапе) создал новый проект скопировал все в main.c. В новом проекте эта бяка осталась(перешла) . Глюк проявился в новом проекте , соответственно сделал вывод что виноват мой алгоритм. Сегодня создал новый проект . Перекинул в main.c только те файлы которые используются . В новом проекте бяки не было. Проект работал без глюков (вернее кусок кода который я приводил). Нашел причину бяки в первичном проекте (причиной послужило /**/ комментирование куска кода) убрал бяку. ПРОЕКТ НЕ РАБОТАЕТ. скопировал код(уже без бяки) в проект 2. ПРОЕКТ ЗАРАБОТАЛ. Проекты одинаковые . Настройки проектов одинаковые . код одинаковый . Но проект 1(первичный) не работает . а проект 2 работает
скрин 1
Show

скрин 2
Show


интересно то что с бякой код то работает (но глючит при дребезге контактов с режимом сна) по шагам работает . все работает если не насиловать кнопку .

всем неравнодушным огромное СПАСИБО.
отдельное спасибо Bill за полезную инфу и наводящие на верный путь вопросы


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB