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

 
 
> инициализировать структуру в ф-ии
Метценгерштейн
сообщение Oct 22 2016, 07:38
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



есть структура
Код
    PWMConfig pwmcfg = { /// структура насройки ШИМ
    10000,                                    /* 10kHz PWM clock frequency.   */
    100,                                    /* Initial PWM period 1S.       */
    NULL,
    {
     {PWM_OUTPUT_ACTIVE_HIGH, NULL},
     {PWM_OUTPUT_DISABLED, NULL},
     {PWM_OUTPUT_DISABLED, NULL},
     {PWM_OUTPUT_DISABLED, NULL}
    },
    0,
    0,
  #if STM32_PWM_USE_ADVANCED
    0
  #endif
  };


но значения полей могут быть разные.
Как можно вынести инициализацию в отд. ф-ю и с определенными параметрами полей инициализировать ее?

Так то вынес, но саму переменную структуры не видит другая ф-я.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение Oct 22 2016, 08:30
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Метценгерштейн @ Oct 22 2016, 10:38) *
есть структура
. . .
Так то вынес, но саму переменную структуры не видит другая ф-я.


Если она в глобальных - то как ОНО может "не видеть" - если в .h указано для вызывающих модулей-ф-ий
что ОНО "extern" ?

1. Запихните все в класс. Там будет и сама структура (тотже класс без функций обработки), и
всевозможные варианты реализации (видимость обеспечится "автоматически")

2. Если класс не подходит.
В модуле, где объявлена структура, реализуйте ф-ию, которая возвращает указатель на Вашу структуру.

PWMConfig * MDL1_GetPtrPWM_Struct(void) { return( &pwmcfg ); };

В вызывающих модулях эта ф-ия должна быть объявлена как extern

Использовать:

MDL1_GetPtrPWM_Struct()->field1 = .....

или любым другим способом.





Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   инициализировать структуру в ф-ии   Oct 22 2016, 07:38
- - SlavaV   передавайте по ссылке в другую функцию например: ...   Oct 22 2016, 07:52
- - Метценгерштейн   так не пойдет. Нужно из некой ф-ии вызывать ф-ю, ...   Oct 22 2016, 08:20
- - SlavaV   Тогда я не понял в чем проблема, особенно это: ...   Oct 22 2016, 08:35
- - Метценгерштейн   пробую варианты. Может проще некоторые поля переин...   Oct 22 2016, 09:05
|- - k155la3   Цитата(Метценгерштейн @ Oct 22 2016, 12:0...   Oct 22 2016, 09:43
- - Lagman   Цитата(Метценгерштейн @ Oct 22 2016, 10:3...   Oct 22 2016, 09:39
- - Метценгерштейн   спасибо. Смысл выкладывать проект? Это chibios. Пр...   Oct 22 2016, 09:59
- - Метценгерштейн   Кодpwmcfg.channels[0].mode = PWM_OUTPUT_AC...   Oct 22 2016, 11:01
|- - k155la3   Цитата(Метценгерштейн @ Oct 22 2016, 14:0...   Oct 22 2016, 11:21
- - Метценгерштейн   а зачем обнулять поля структуры? Нельзя ли при объ...   Oct 22 2016, 15:00
|- - Lagman   Цитата(Метценгерштейн @ Oct 22 2016, 18:0...   Oct 23 2016, 09:51
|- - psL   Цитата(Метценгерштейн @ Oct 22 2016, 18:0...   Oct 24 2016, 21:09
- - Kabdim   Не уверен что праильно понял желание, но к примеру...   Oct 24 2016, 07:49


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

 


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


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