Перейти к содержанию
    

STM32 Массив IO регистров и доступ к ним

Приветствую.

Вопрос конечно глупый, наверно, но все-таки - есть группа регистров таймеров, к которым до недавнего времени обращался как TIM1->CCR1 = nnnn и все нормально, но пришлось создать массив таких регистров, чтоб делать примерно так - TIM_PWM[1] = nnnn без всяких кейсов и ифов

 

И уж до кучи - как вообще записать произвольное число в память по произв. адресу?

 

Вопрос- как это сделать в стм32f4 ?

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

навскидку типо так

 

typedef struct{

uint32_t volatile* PR;

uint32_t volatile* PC;

uint32_t volatile* CR;

uint32_t volatile* MR;

}S_my_timer;

 

 

S_my_timer my_timer[] = {

{ &LPC_TIM0->PR, &LPC_TIM0->PC, &LPC_TIM0->CR0, &LPC_TIM0->MR0 },

{ &LPC_TIM1->PR, &LPC_TIM1->PC, &LPC_TIM1->CR0, &LPC_TIM1->MR0 },

{ &LPC_TIM2->PR, &LPC_TIM2->PC, &LPC_TIM2->CR0, &LPC_TIM2->MR0 },

};

 

*(my_timer[0].PC) = 0xABCD;

 

 

 

по произвольному адресу так

*((uint32_t*)0x10000000) = 0x1234;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...