31.08.2015, 13:40
|
|
Прохожий
Регистрация: 03.07.2006
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вопрос по STM8L
Проблема программа зависает а команде "WFI"
подскажите где моя ошибка?
void main( void )
{
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENAB LE);
TIM2_TimeBaseInit (TIM2_Prescaler_128, TIM2_CounterMode_Up, 0xFFFF);
TIM2_ITConfig(TIM2_IT_Update,ENABLE);
TIM2_Cmd(ENABLE);
enableInterrupts();// разрешить прерывания
while(1)
{
wfi(); /* Wait For Interrupt */
if (counter›100)
{
GPIO_ToggleBits(GPIOB,GPIO_Pin_0);
counter =0;
}
}
}
///////////////////////////////////////////////////////////////////////////////////
INTERRUPT_HANDLER(TIM2_handler,TIM2_UPD_OVF_TRG_BR K_IRQn)
{
if (TIM2_GetFlagStatus(TIM2_FLAG_Update))
{
counter++;
TIM2_ClearFlag(TIM2_FLAG_Update);
}
}
|
|
|
|
31.08.2015, 17:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Вопрос по STM8L
Обычно в прерывании устанавливается флаг, а основной цикл его проверяет и сбрасывает. Зачем городить лишнюю функцию на таком не слишком сильном кристалле?
__________________
misterdi<@>i.ua
|
|
|
|
31.08.2015, 20:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Вопрос по STM8L
Сообщение от MisterDi
|
Зачем городить лишнюю функцию на таком не слишком сильном кристалле?
|
Да там проверка флага, инкремент счётчика и сброс флага.
balderuss, что в листинге подставлено вместо "enableInterrupts();" и как там же выглядит "wfi();" ?
|
|
|
|
01.09.2015, 18:21
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Вопрос по STM8L
Сообщение от MisterDi
|
Обычно в прерывании устанавливается флаг, а основной цикл его проверяет и сбрасывает. Зачем городить лишнюю функцию на таком не слишком сильном кристалле?
|
Это к чему? ТС просто с WFI разбирается, а не заморачивается с оптимизацией.
Сообщение от omercury
|
что в листинге подставлено вместо "enableInterrupts();" и как там же выглядит "wfi();" ?
|
Всё там нормально и описано в хедере.
Сообщение от balderuss
|
Проблема программа зависает а команде "WFI"
подскажите где моя ошибка?
|
В настройке таймера или в названии прерывания. Проверить можно убрав строчку.
wfi(); /* Wait For Interrupt */
Там всё должно работать. Если не работает, разбирайтесь с настройкой таймера.
|
|
|
|
02.09.2015, 02:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Вопрос по STM8L
Порт на выход не сконфигурирован.
GPIO_Init(GPIOB, GPIO_Pin_0, GPIO_Mode_Out_PP_Low_Fast);
Последний раз редактировалось AR_Favorit; 02.09.2015 в 03:01.
Причина: добавил пример конфигурации
|
|
|
|
02.09.2015, 09:17
|
|
Прохожий
Регистрация: 03.07.2006
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вопрос по STM8L
Всем, спасибо.
Разобрался все работает, просто торопился и не дождался результата .
Тут между включениями сида примерно 1,5 минуты.
|
|
|
|
02.09.2015, 14:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Вопрос по STM8L
Вообще-то при таковой частоте 2 мГц, что по умолчанию, период переключения выхода будет (1/2000000)*65536*128*100 = ~420 сек...
|
|
|
|
28.09.2015, 08:16
|
|
Прохожий
Регистрация: 03.07.2006
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вопрос по STM8L
помогите .
изучаю STM8L101 .
как заставить в IAR`e переключиться в экономичный режим с таймером 10 минут .
так понимаю надо включить модуль AWU ?
|
|
|
|
28.09.2015, 08:41
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Вопрос по STM8L
Точно так. Не забыть, что AWU - это ISR. А значит флаг тоже надо будет сбросить.
|
|
|
|
28.09.2015, 08:57
|
|
Прохожий
Регистрация: 03.07.2006
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вопрос по STM8L
если не сложно пример ...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:07.
|
|