18.04.2013, 17:20
|
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Что то меня попустило с SPL, мне как-то с регистрами было проще разобраться, чем с этой библиотекой. Даже не знаю что и делать.Многие пишут что с SPL легче, не нужно лезть в даташит, а я вот нефига не пойму как теперь что настраивать. Получается что теперь нужно лезть не в даташит а описание библиотеки.
Вот у меня была такая инициализация таймера 1
Код:
|
TIM1_CR2=0; //Сброс признака прерывания
TIM1_SMCR=0;
TIM1_ETR=0;
TIM1_IER=MASK_TIM1_IER_UIE;
TIM1_PSCRH=0;//
TIM1_PSCRL=8;//Предделитель
TIM1_CR1=MASK_TIM1_CR1_URS; // Прерывание по переполнению разрешено
} |
Вот обработчик прерывания
Код:
|
#pragma vector=TIM1_OVR_UIF_vector
__interrupt void TIM1_OVR_UIF(void)
{
TIM1_SR1_UIF=0;
TIM1_CR1_bit.CEN=0;
и так далее.....
} |
Вот теперь сижу и думаю как это все мне настроить используя библиотеку ? Открыл хелп по SPL, раздел timer1 ? и ничего не понял , опять идет перечисления регистров,что как настраивать не понятно, опять же нужно лезть в даташит. Если кому не напряг , покажите как делается приведенная вверху инициализация таймера и обработка прерывания но с помощью spl . А то как-то трудно вьехать, думаю с примерами будет понятней и быстрей разобраться c SPL .
Последний раз редактировалось stmfaq; 18.04.2013 в 17:22.
|
|
|
|
18.04.2013, 17:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от stmfaq
|
.Многие пишут что с SPL легче, не нужно лезть в даташит, а я вот нефига не пойму как теперь что настраивать. Получается что теперь нужно лезть не в даташит а описание библиотеки.
|
Наверное, все-таки от "лезть в даташит" не уйти, как бы вы не старались. Что с либами, что без, а ДШ знать нужно. Здесь уже много раз об этом говорили. Причем народ очень авторитетный говорил.
Решать вам.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
18.04.2013, 18:09
|
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Я не специалист, но мне как-то работать с регистрами легче, в даташите мне легче разобраться что куда писать. Возможно я не совсем понял принципа работы с библиотекой, может кто то разъяснит на примере одного из модулей как с SPL работать,буду благодарен
|
|
|
|
18.04.2013, 19:35
|
|
Временная регистрация
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
|
Re: FAQ по STM8
Ваш пример с инициализацией будет выглядеть примерно так
TIM1_DeInit();
TIM1_TimeBaseInit(uint16_t TIM1_Prescaler,
TIM1_CounterMode_TypeDef TIM1_CounterMode,
uint16_t TIM1_Period,
uint8_t TIM1_RepetitionCounter);// настройки таймера
TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE);// разрешение прерывания
TIM1_Cmd(ENABLE);// включение всех предыдущих настроек и старт таймера
Посмотрите stm8s_tim1.h в конце файла список всех функций, связанных с Tim1.
P.S. вот настройка таймера на 10mS, при тактовой 16MHz
TIM1_TimeBaseInit(1000, TIM1_COUNTERMODE_DOWN, 160, TIM1_PSCRELOADMODE_UPDATE); // 10mSec
Последний раз редактировалось s64; 18.04.2013 в 19:41.
|
|
|
|
18.04.2013, 20:38
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: FAQ по STM8
Зачем вы в начальную инитиализацию DeInit() пихаете?
|
|
|
|
18.04.2013, 20:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от Easyrider83
|
Зачем вы в начальную инитиализацию DeInit() пихаете?
|
Надо, Паша, надо!
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
18.04.2013, 21:38
|
|
Временная регистрация
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
|
Re: FAQ по STM8
что бы не думалось, что же там до этого было и как может повлиять в дальнейшем.
|
|
|
|
18.04.2013, 21:42
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Конечно надо . Ввели же разработчики ее , ибо ни хрена не уверены в своих функциях инициализации .
Мышь плакали, кололись, но продолжали впихивать DeInit()
__________________
Осторожно , злой кот
|
|
|
|
18.04.2013, 21:48
|
|
Временная регистрация
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
|
Re: FAQ по STM8
так ведь далеко не факт, что это будет начальная инициализация, может переинициализация. Для себя решил, применять всегда и не думать.
|
|
|
|
18.04.2013, 22:53
|
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
А обработчик прерывания с использованием библиотек выглядит так
Код:
|
#pragma vector=TIM1_OVR_UIF_vector
__interrupt void TIM1_OVR_UIF(void) |
Или заголовок уже другого вида?
Я при входе прерывания проверяю что его вызвало
Код:
|
if (TIM1_SR1_UIF==1)
{ |
А как это будет выглядеть с SPL?
Глянул хидер Timer1 , голова кругом от количества функций, что к чему хрен поймешь.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:59.
|
|