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

 
 
> Мелкие вопросы
data_stack
сообщение Nov 27 2015, 11:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 16-10-15
Пользователь №: 88 891



Идет процесс бурного изучения, возникает много вопросов, все вопросы мелкие, плодить темы не хочется
1. Вопрос по отладчику Keil. Есть массив указателей, который указывает на другие массивы:
Код
unt8_t const* const strings[]
{
string1,
string2...
}

и где то объявлены сами массивы, в некоторый момент передается номер массива, который нужно прочитать. Возможно ли в этот момент посмотреть содержимое этого массива в отладчике?
2. Имеется 1 АЦП и несколько ног, с одной нужно снимать 12битные значения, со другой 8битные. Пересчитывать пропорцией?
3. Делаю библиотеку. Где по правильному хранить платформозависимые дефайны в h или в c файле
4. Дефайны пишем заглавными буквами, а на макросы это распространяется или нет? По сути это тоже дефайны?
5. Перед некоторыми функциями ставят знак нижнего подчеркивания, что это значит?
6. Почему в библиотеках не используют структуры? Например вместо
Код
lcd_drawLine(x0, y0, x1, y1)

не написать
Код
typedef struct
{
uint8_t x;
uint8_t y;
}point_t;
lcd_drawLine(pont_t start_point, pont_t end_point)

это же нагляднее?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
=L.A.=
сообщение Dec 14 2015, 06:46
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 794
Регистрация: 4-09-06
Из: Москва(ЗелАО), РФ
Пользователь №: 20 055



Еще небольшой вопросец. Есть такая штука "SysTick_Handler". Я проштудировал доки и не нашел ответа, какой таймер использует эта функция ? Это один из периферийных ( TIM1 ... TIM17 ) или дополнительный таймер из ядра?


--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 14 2015, 06:58
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(=L.A.= @ Dec 14 2015, 09:46) *
SysTick timer и использует. Из ядра. И его описание, соответственно, в описании ядра. Кстати, и вектор SysTick_Handler находится среди векторов ядра (всяких xxxAbort_Handler и т.п.).


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
=L.A.=
сообщение Dec 14 2015, 07:51
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 794
Регистрация: 4-09-06
Из: Москва(ЗелАО), РФ
Пользователь №: 20 055



Цитата(Сергей Борщ @ Dec 14 2015, 09:58) *
SysTick timer и использует. Из ядра. И его описание, соответственно, в описании ядра. Кстати, и вектор SysTick_Handler находится среди векторов ядра (всяких xxxAbort_Handler и т.п.).
.

Спасибо. Главное для меня, что это отдельный от всех остальных таймер и если включено SysTick, то другие таймеры можно использовать. В доках на ядро F0 о таймере SysTick написано крайне мало. Даже Гугль ничего не находит sm.gif

А вектор ( приоритет SysTick ) попробую переставить пониже в файле startup_stm32f051.s Вдруг подействует?


--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 14 2015, 08:38
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(=L.A.= @ Dec 14 2015, 10:51) *
В доках на ядро F0 о таймере SysTick написано крайне мало. Даже Гугль ничего не находит sm.gif

PM0215, "STM32F0xxx Cortex-M0 programming manual", раздел 4.4, 4 страницы с картинками.
Гугль. Результатов: примерно 18 600. Попробуйте сменить интернет.

Цитата(=L.A.= @ Dec 14 2015, 10:51) *
А вектор ( приоритет SysTick ) попробую переставить пониже в файле startup_stm32f051.s Вдруг подействует?
В файле вы можете перставлять что угодно, а в кристалле вектора прибиты к своим адресам гвоздями. Про приоритеты написано в том же описании в разделе 2.2, этот раздел аж из 6 страниц.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
=L.A.=
сообщение Dec 14 2015, 12:53
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 794
Регистрация: 4-09-06
Из: Москва(ЗелАО), РФ
Пользователь №: 20 055



Цитата(Сергей Борщ @ Dec 14 2015, 11:38) *
PM0215, "STM32F0xxx Cortex-M0 programming manual", раздел 4.4, 4 страницы с картинками.


Эту доку читал, но интересовался не описанием регистров, а связью SysTick c другими таймерами, о чем в
в Programming manual не написали. Можно сравнить адреса регистров, но надо обратить специальное внимание, что я уже сделал.

Теперь добавил в программу инициализацию TIM6 и установку прерывания по этому таймеру. ИАР выдает ошибку
Error while running Linker :

Error[Li005]: no definition for "NVIC_Init" [referenced from C:\ARM\2_PROJ\1Prb32F0\EWARMv5\Release\Obj\01PrbDsc.o]

Что ему не нравится?

Код
*
//#########################    
// /* TIM6 is used to  */
//
  NVIC_InitTypeDef            NVIC_InitStructure;
  TIM_TimeBaseInitTypeDef     TIM_TimeBaseStructure;
//
/* TIMER clock enable */
//
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6 , ENABLE);

/* Enable the TIMER global Interrupt */

  NVIC_InitStructure.NVIC_IRQChannel = TIM6_DAC_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
//
  NVIC_Init(&NVIC_InitStructure);
//
  TIM_TimeBaseStructure.TIM_Period = 5000;
  TIM_TimeBaseStructure.TIM_Prescaler = 32;
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
//
  TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);
//
/* TIM IT enable */
  TIM_ITConfig(TIM6, TIM_IT_Update , ENABLE);
//
/* TIM enable counter */
//
   TIM_Cmd(TIM6, ENABLE);    
//-------


Сообщение отредактировал =L.A.= - Dec 14 2015, 13:18


--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- data_stack   Мелкие вопросы   Nov 27 2015, 11:48
- - slavokhire5   1. да, можете посмотреть содержимое памяти по адре...   Nov 27 2015, 14:11
- - =L.A.=   Добавлю еще один мелкий ( но при этом большой ) во...   Nov 29 2015, 08:00
|- - aaarrr   Цитата(=L.A.= @ Nov 29 2015, 11:00) Если ...   Nov 29 2015, 08:12
|- - =L.A.=   Цитата(=L.A.= @ Nov 29 2015, 12:00) Есть ...   Nov 29 2015, 08:18
|- - aaarrr   Цитата(=L.A.= @ Nov 29 2015, 11:18) Я так...   Nov 29 2015, 08:40
- - Herz   Цитата(data_stack @ Nov 27 2015, 13:48) И...   Nov 29 2015, 09:48
|- - data_stack   Цитата(Herz @ Nov 29 2015, 10:48) Однако ...   Nov 30 2015, 09:17
- - slavokhire5   Я за стандартные либы. Да, местами криво. Да, жру...   Nov 29 2015, 15:35
|- - aaarrr   Цитата(slavokhire5 @ Nov 29 2015, 18:35) ...   Nov 29 2015, 15:50
|- - jcxz   Цитата(slavokhire5 @ Nov 29 2015, 21:35) ...   Nov 30 2015, 04:49
- - slavokhire5   Если написать свои библиотеки на всю переферию как...   Nov 29 2015, 20:56
- - aaarrr   Вся ли периферия "жирного" STM32 использ...   Nov 29 2015, 21:23
|- - =L.A.=   Цитата(=L.A.= @ Dec 14 2015, 15:53) Error...   Dec 14 2015, 15:01
|- - aaarrr   Цитата(=L.A.= @ Dec 14 2015, 18:01) Что б...   Dec 14 2015, 15:49
|- - Ruslan1   Вопрос по определению USB подключения на STM32F0: ...   Dec 15 2015, 13:35
|- - esaulenka   Цитата(Ruslan1 @ Dec 15 2015, 16:35) Вопр...   Jan 12 2016, 14:09
- - =L.A.=   STM32F0xxx Приоритет SysTick устанавливается прог...   Jan 11 2016, 18:16
- - Сергей Борщ   Цитата(=L.A.= @ Jan 11 2016, 20:16) Приор...   Jan 11 2016, 21:35


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

 


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


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