MyTetra Share
Делитесь знаниями!
Куски кода, которые могут пригодится при работе с чипом Миландр
Время создания: 16.06.2014 16:20
Текстовые метки: код, полезный, Миландр, Milandr
Раздел: Linux, компиляция, C/C++ - ARM - Milandr
Запись: xintrea/mytetra_db_harpokrat/master/base/1402921238krxva71xai/text.html на raw.githubusercontent.com

Функция инициализации порта:



void Port_init(void)

{

#if defined MILANDR


MDR_RST_CLK->PER_CLOCK |= (1UL << 21); // разрешение тактирования порта A


MDR_PORTA->OE = ((1 << 0) | (1 << 1)); //направление передачи данных = Выход

MDR_PORTA->ANALOG = ((1 << 0) | (1 << 1)); //режим работы контроллера =

MDR_PORTA->FUNC = ((0 << 0*2) | (0 << 1*2)); //режим работы вывода порта =

MDR_PORTA->PULL = ((0 << 0) | (0 << 1)); //запрещение подтяжки к GND

//MDR_PORTB->PULL = ((0 << (1 << 16))); //запрещение подтяжки к VCC

MDR_PORTA->PD = ((0 << 0) | (0 << 1)); //режим работы выхода =

MDR_PORTA->PWR = ((3 << 0*2) | (3 << 1*2)); //скорость фронта вывода = максимальная


#else


// Выставляем тактирование в APB2

RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;


// Конфигурируем CRL регистры.

GPIOA->CRL &= ~GPIO_CRL_CNF1; // Сбрасываем биты CNF для бита 1. Режим 00 - Push-Pull

GPIOA->CRL |= GPIO_CRL_MODE1_0; // Выставляем бит MODE0 для 1 пина. Режим MODE01 = Max Speed 10MHz

GPIOA->CRL &= ~GPIO_CRL_CNF0; // Сбрасываем биты CNF для бита 0. Режим 00 - Push-Pull

GPIOA->CRL |= GPIO_CRL_MODE0_0; // Выставляем бит MODE0 для 0 пина. Режим MODE01 = Max Speed 10MHz


#endif

}



Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования