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

 
 
> Мелкие вопросы
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.=
сообщение Nov 29 2015, 08:00
Сообщение #2


Знающий
****

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



Добавлю еще один мелкий ( но при этом большой ) вопрос.

Изучал функцию GPIO_Init из стандартной библиотеки STM32F0xx_StdPeriph_Driver.

Правильно ли я понимаю, что при помощи этой функции можно сделать только такие настройки:

1) По умолчанию все ноги - входы General-purpose
2) Ноги, перечисленные в строке структуры GPIO_InitStructure.GPIO_Pin становятся выходами
с одинаковыми параметрами, которые указаны в следующих строках структуры.

Если так, то вопрос, как сконфигурировать ноги порта, если там и входы разного типа ( General-purpose, аналоговые, с подтяжкой или без) и еще и выходы тоже разного типа?

Видел в англоязычных форумах более ручной способ конфигурирования, типа:

GPIOC-> MODER |= (GPIO_MODER_MODER8_0 | GPIO_MODER_MODER9_0) ;

Есть ли более подробные примеры? Среда - IAR 6.40

Сообщение отредактировал =L.A.= - Nov 29 2015, 08:01


--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 29 2015, 08:12
Сообщение #3


Гуру
******

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



Цитата(=L.A.= @ Nov 29 2015, 11:00) *
Если так, то вопрос, как сконфигурировать ноги порта, если там и входы разного типа ( General-purpose, аналоговые, с подтяжкой или без) и еще и выходы тоже разного типа?

Написать свой конфигуратор, например:
CODE

typedef enum
{
GPM_INPUT = 0,
GPM_OUTPUT = 1,
GPM_AF = 2,
GPM_ANALOG = 3,
} GPIO_MODE;

typedef enum
{
GPF_AF0 = 0,
GPF_AF1 = 1,
GPF_AF2 = 2,
GPF_AF3 = 3,
GPF_AF4 = 4,
GPF_AF5 = 5,
GPF_AF6 = 6,
GPF_AF7 = 7,
GPF_AF8 = 8,
GPF_AF9 = 9,
GPF_AF10 = 10,
GPF_AF11 = 11,
GPF_AF12 = 12,
GPF_AF13 = 13,
GPF_AF14 = 14,
GPF_AF15 = 15,
} GPIO_AF;

typedef enum
{
GPT_PP = 0,
GPT_OD = 1,
} GPIO_TYPE;

typedef enum
{
SPD_2M = 0,
SPD_25M = 1,
SPD_50M = 2,
SPD_100M = 3,
} GPIO_SPD;

struct pin_mode
{
void *port;
char pin;
GPIO_MODE mode;
GPIO_AF af;
GPIO_TYPE type;
GPIO_SPD speed;
};

void gpio_setup(const struct pin_mode *setup)
{
while(setup->port)
{
GPIO_TypeDef *port = (GPIO_TypeDef *)setup->port;

port->MODER = (port->MODER & ~(3UL << setup->pin * 2)) |
(setup->mode << setup->pin * 2);
if(setup->mode == 2) // Alternate function
{
int p = (setup->pin > 7) ? 1 : 0, n = setup->pin & 7;

port->AFR[p] = (port->AFR[p] & ~(15UL << n * 4)) |
(setup->af << n * 4);
}
if(setup->type)
port->OTYPER |= 1UL << setup->pin;
else
port->OTYPER &= ~(1UL << setup->pin);
port->OSPEEDR = (port->OSPEEDR & ~(3UL << setup->pin * 2)) |
(setup->speed << setup->pin * 2);
setup++;
}
}

Вызов:
Код
const struct pin_mode ui_pins[] =
{
     {LED1, GPM_OUTPUT, GPF_AF0, GPT_PP},
     {LED2, GPM_OUTPUT, GPF_AF0, GPT_PP},

     {KEY, GPM_INPUT},

     NULL
};

gpio_setup(ui_pins);

Подтяжки добавить по аналогии с остальным.
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.=   Цитата(=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.=   Еще небольшой вопросец. Есть такая штука "S...   Dec 14 2015, 06:46
|- - Сергей Борщ   Цитата(=L.A.= @ Dec 14 2015, 09:46) SysTi...   Dec 14 2015, 06:58
|- - =L.A.=   Цитата(Сергей Борщ @ Dec 14 2015, 09:58) ...   Dec 14 2015, 07:51
|- - Сергей Борщ   Цитата(=L.A.= @ Dec 14 2015, 10:51) В док...   Dec 14 2015, 08:38
|- - =L.A.=   Цитата(Сергей Борщ @ Dec 14 2015, 11:38) ...   Dec 14 2015, 12:53
|- - =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 - 14:09
Рейтинг@Mail.ru


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