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

 
 
> Мелкие вопросы
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
=L.A.=
сообщение Dec 14 2015, 15:01
Сообщение #7


Знающий
****

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



Цитата(=L.A.= @ Dec 14 2015, 15:53) *
Error while running Linker :

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


Нашел. Оказалось, что функция void NVIC_Init(....) спрятана в файле
stm32f0xx_misc.c

Цитата(Сергей Борщ @ Dec 14 2015, 11:38) *
В файле вы можете перставлять что угодно, а в кристалле вектора прибиты к своим адресам гвоздями. Про приоритеты написано в том же описании в разделе 2.2, этот раздел аж из 6 страниц.
.

Насчет "прибитых гвоздями" векторов. Прочитал доку. Вижу таблицу с непонятными словами "settable". Что бы это значило? sm.gif Гугля спросить или интернет поменять?




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


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(=L.A.= @ Dec 14 2015, 18:01) *
Что бы это значило?

Что приоритет можно установить, что же еще? Позиция вектора от этого не изменится.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Dec 15 2015, 13:35
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Вопрос по определению USB подключения на STM32F0:

Обязательно ли нужно в STM32F0 (STM32F070) для работы с USB задействовать какой-то вывод МК кроме DP,DM для определения факта подключения (наличия VBUS) и начала инициализации USB соединения? Отдельный вывод под контроль VBUS очень не хочется, ножек не хватает.

Для DFU программатора ему это не нужно: только DP и DM, внешний pull-up резистор на DP не нужен- есть свой управляемый внутри МК.
A как для обычной работы, делать периодическое сканирование? USB планирую использовать просто как консоль, то есть пауза от подключения до детектирования может быть хоть 10 секунд, это не проблема. Но жалко много ресурсов МК тратить на сканирование интерфейса, который обычно выключен.
Много ли вычислительных ресурсов периодическое сканирование на предмет наличия USB подключения занимает?
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
|- - 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 Текстовая версия Сейчас: 21st July 2025 - 19:35
Рейтинг@Mail.ru


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