Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-авг-08 00:16

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 5 сообщений ] 
Автор Сообщение
СообщениеДобавлено: 2014-янв-19 17:38 
Не в сети

Зарегистрирован: 2013-ноя-25 15:49
Сообщения: 8
Откуда: Россия, МО г. Дубна
MDR_PORTB->RXTX |= 1<<4;

немного неудобно, есть ли библиотека с битовыми полями регистров ввода вывода?

Спасибо


Вернуться к началу
СообщениеДобавлено: 2014-янв-20 08:29 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-авг-07 09:58
Сообщения: 132
Dimx писал(а):
MDR_PORTB->RXTX |= 1<<4;

немного неудобно, есть ли библиотека с битовыми полями регистров ввода вывода?

Спасибо
Да, есть.


Вернуться к началу
СообщениеДобавлено: 2014-янв-20 19:35 
Не в сети

Зарегистрирован: 2013-ноя-25 15:49
Сообщения: 8
Откуда: Россия, МО г. Дубна
Спасибо! Опробовал, удобно! Очень приятно, что Вы расширяете библиотеки!
работает, но только если добавляю MDR32F9Qx_port.c, без него не хочет компилиться...может я что то не понимаю, но в примерах, что идет в библиотеке только *.h файлы добавлены в проект.
Работаю в IAR..

#include "MDR32F9Qx_board.h"
#include "MDR32F9Qx_config.h"
#include "MDR32Fx.h"
#include "MDR32F9Qx_port.h"
#include "MDR32F9Qx_port.c"

void OSC_init(void){
//---CLK-----------------------------------------------------------------------------------------------------
MDR_RST_CLK->PER_CLOCK = 0xFFFFFFFF; // вкл. тактирование всей перефирии
MDR_RST_CLK->HS_CONTROL = 0x01; // вкл. HSE осцилятор
while ((MDR_RST_CLK->CLOCK_STATUS & (1 << 2)) == 0x00); // ждем пока HSE выйдет в рабочий режим
MDR_RST_CLK->PLL_CONTROL = ((1 << 2) | (0 << 8)); // вкл. PLL | коэф. умножения = 0 ? проверить
while((MDR_RST_CLK->CLOCK_STATUS & 0x02) != 0x02); // ждем когда PLL выйдет в раб. режим

MDR_RST_CLK->CPU_CLOCK = (2 // источник для CPU_C1
|(1 << 2) // источник для CPU_C2
|(0 << 4) // предделитель для CPU_C3
|(1 << 8)); // источник для HCLK

// при Fosc = 10 Mгц и PLL = 10 -> "t_Nop" ~ 310 нс!

}

void GPIO_init (void){

MDR_PORTA->OE = 0xffff; // порт A0-A7 на выход (LCD D0-D7)
MDR_PORTA->FUNC = 0x0000; // функция - порт
MDR_PORTA->ANALOG = 0xffff; // режим потра - цифровой
MDR_PORTA->PWR = 0xFFFFFFFF; // максимально быстрый фронт ( порядка 10 нс)
//---------------------------------------------------------------------------//
MDR_PORTB->OE = 0xffff; // порт D на выход
MDR_PORTB->FUNC = 0x0000; // функция - порт
MDR_PORTB->ANALOG = 0xffff; // режим потра - цифровой
MDR_PORTB->PWR = 0xFFFFFFFF; // максимально быстрый фронт ( порядка 10 нс)
//---------------------------------------------------------------------------//
MDR_PORTC->OE = (1<<2)|(1<<7); // LCD_RW и LCD_E пины на выход
MDR_PORTC->FUNC = 0x0000; // функция - порт
MDR_PORTC->ANALOG = 0xffff; // режим потра - цифровой
MDR_PORTC->PWR = 0xFFFFFFFF; // максимально быстрый фронт ( порядка 10 нс)
//---------------------------------------------------------------------------//
MDR_PORTD->OE = 0xffff; // порт D на выход
MDR_PORTD->FUNC = 0x0000; // функция - порт
MDR_PORTD->ANALOG = 0xffff; // режим потра - цифровой
MDR_PORTD->PWR = 0xFFFFFFFF; // максимально быстрый фронт ( порядка 10 нс)
//---------------------------------------------------------------------------//
MDR_PORTE->OE = 0xffff; // порт E на выход
MDR_PORTE->FUNC = 0x0000; // функция - порт
MDR_PORTE->ANALOG = 0xffff; // режим потра - цифровой
MDR_PORTE->PWR = 0xFFFFFFFF; // быстрый фронт ( порядка 10 нс)
//---------------------------------------------------------------------------//
MDR_PORTF->OE = 0xffff; // порт D на выход
MDR_PORTF->FUNC = 0x0000; // функция - порт
MDR_PORTF->ANALOG = 0xffff; // режим потра - цифровой
MDR_PORTF->PWR = 0xFFFFFFFF; // максимально быстрый фронт ( порядка 10 нс)
}



int main()
{
OSC_init();
GPIO_init();
LCD_init();
while(1)
{

PORT_SetBits(MDR_PORTB,PORT_Pin_1|PORT_Pin_0);
big_delay();
big_delay();
PORT_ResetBits(MDR_PORTB,PORT_Pin_1|PORT_Pin_0);
big_delay();
big_delay();


}
}


Вернуться к началу
СообщениеДобавлено: 2014-янв-22 10:24 
Не в сети
Аватара пользователя

Зарегистрирован: 2013-дек-01 10:04
Сообщения: 11
Файл с битовыми полями регистров ввода вывода
и с удобным доступом к нему нужен. У нас пока используется его
прообраз скажем K1986BE92QIr.h . Буква r означает, что его можно
расширять на все R/W регистры микроконтроллера. В приложении
показано как с ним настраивать порты без других файлов.


Вложения:
Lab1.1.rar [1.56 КБ]
399 скачиваний
Вернуться к началу
СообщениеДобавлено: 2014-янв-22 14:32 
Не в сети

Зарегистрирован: 2013-ноя-25 15:49
Сообщения: 8
Откуда: Россия, МО г. Дубна
Спасибо за ответ! гляну


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 5 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB