реклама на сайте
подробности

 
 
> CANFestival и STM32F103, timer.c
Minti
сообщение Jun 10 2011, 09:37
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 5-04-11
Пользователь №: 64 157



Здраствуйте!

Так как я с МК и КЭНом(CANFestival) дело не имел, пытаюсь перепесать фаил timer.c от AVR(./drivers/AVR/timer_AVR.c) для STM32. Застрял на 2 defines(для начало wink.gif):
CODE
// Define the timer registers
#define TimerAlarm OCR3B
#define TimerCounter TCNT3

какие регистры соответствуют на STM32F103?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Minti
сообщение Oct 18 2011, 12:30
Сообщение #2





Группа: Участник
Сообщений: 13
Регистрация: 5-04-11
Пользователь №: 64 157



syoma, большое спасибо за исходный текст! Есть ещё парочку вопросов

Ваша текущая реализация драйверов таймера:
CODE
...
/* Compute the prescaler value APB1 divided by two, but this is fixed by timer itself */
PrescalerValue = (uint16_t) ((SystemCoreClock) / 125000) - 1;
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = 65535;
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

/* Prescaler configuration */
TIM_PrescalerConfig(TIM2, PrescalerValue, TIM_PSCReloadMode_Immediate);
...

Какое значение у SystemCoreClock? 72MHz?
формула вычисления шага:
Tick := SystemCoreClock / (TIM_Prescaler+1) / TIM_Period
Как я понял TIM_Period у вас в формулу не берется. Это из-за "Output Compare Timing Mode configuration"?
Цитата
Systick я настроил на прерывание каждые 1мс чисто для своих нужд - например каждую мс входы опрашивать и т.д. в Canfestival он не учавствует.

Тогда где у вас в программе этот блок стоит:

if (canReceive(&m)) canDispatch(Obj_Data, &m);

в "инфинити луп"?


Запустил МК с вашими реализациами. USART2 interrupt работает стабильно, а вот функция ConfigureSlaveNode(тут находится CanFestival-3\examples\DS401_Master\TestMasterMicroMod.c) теряется. Обнаружил вот такой феномен: ставлю ТIМ2 на большой шаг ~2с, выполняю ConfigureSlaveNode(доходит до конца), ставлю ТIМ2 шаг обратно и колёсики начинают крутится. Можно ли решить эту проблему по другому?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Minti   CANFestival и STM32F103   Jun 10 2011, 09:37
- - Minti   Помучившись с даташит от разных МК я пришёл к тако...   Jul 18 2011, 09:42
- - syoma   А какой профиль делаете?   Oct 9 2011, 20:14
|- - Minti   CiA 402 пока проблема с прерываниями(interrupts): ...   Oct 12 2011, 08:33
|- - Forger   Цитата(Minti @ Oct 12 2011, 12:33) CiA 40...   Oct 13 2011, 18:03
- - Minti   такое ощущение, что таймер перебевает "инфини...   Oct 13 2011, 20:10
|- - Forger   Цитата(Minti @ Oct 14 2011, 00:10) Forger...   Oct 13 2011, 21:45
- - syoma   ЦитатаHeartbeat с 50ms Чего-то очень часто. Вам де...   Oct 14 2011, 06:52
|- - Forger   Цитата(syoma @ Oct 14 2011, 10:52) Кстати...   Oct 14 2011, 07:22
- - Minti   Цитата(syoma @ Oct 14 2011, 08:52) Чего-т...   Oct 14 2011, 11:20
- - syoma   Вот мои текущие реализации драйверов таймера и CAN...   Oct 15 2011, 17:01
- - syoma   SystemCoreClock - 72MHz. Мне нужно было задать дел...   Oct 18 2011, 15:13
- - Minti   Цитата(syoma @ Oct 18 2011, 17:13) canDis...   Oct 18 2011, 19:06
- - syoma   Посмотрел я ConfigureSlaveNode - в принципе мне эт...   Oct 19 2011, 07:46
- - Minti   Залевши глубако в код CanFestival'я я понял, ч...   Nov 29 2011, 13:50
- - Minti   Forger, syoma, как вы подсоединили CanFestival к п...   Dec 8 2011, 23:34
- - Minti   Привет Ошибку нашёл месяц назад, забыл запостить т...   Feb 12 2012, 16:01
- - syoma   Я так понял - это камень в мой огород? Ситуация с ...   Feb 16 2012, 16:12
- - Minti   Цитата(syoma @ Feb 16 2012, 17:12) Я так ...   Feb 17 2012, 15:06


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 02:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016