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

 
 
> управление ножками, keil+mcb1200(lpc1227)
Tsyganoks
сообщение Jul 30 2012, 10:15
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 7-07-11
Пользователь №: 66 105



Есть контроллер nxp lpc1227. Нужно управлять группой пинов, расположенной на разных портах. Можно определить их так, что на ноге выставлялась 1 после присвоения единицы переменной, а не LPC_GPIO0->SET= PIN[n].
Ну или есть ли какие-нибудь другие способы отойти от этой записи?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Jul 30 2012, 18:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Читайте даташит. Если можно как-то иначе, чем записью в определенный порт в определенный разряд единицы - напишите в NXP, Вам вышлют лоток контроллеров и пропишут Ваши изыскания в еррату
Переопределениями - один паровоз, потянет он за собой несколько команд. Но не миллионы же раз это делать, правда?
Что касаемо самой записи - чем она Вам не нравится? Имея даташит в руках, все лаконично и понятно
Go to the top of the page
 
+Quote Post
Tsyganoks
сообщение Jul 31 2012, 04:38
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 7-07-11
Пользователь №: 66 105



Цитата(toweroff @ Jul 30 2012, 21:58) *
Читайте даташит. Если можно как-то иначе, чем записью в определенный порт в определенный разряд единицы - напишите в NXP, Вам вышлют лоток контроллеров и пропишут Ваши изыскания в еррату
Переопределениями - один паровоз, потянет он за собой несколько команд. Но не миллионы же раз это делать, правда?
Что касаемо самой записи - чем она Вам не нравится? Имея даташит в руках, все лаконично и понятно

не нравится тем, что была процедура для 51 контроллера, управляющая мультиплексором, выглядела так
Код
void MUX(char kanal)
         {
            A0=0x01&kanal;
            A1=0x02&kanal;
            A2=0x04&kanal;
          }

а в версии для арм ножки сидят на разных портах и как написать продеруру не нагородив кучу if я что-то не понимаю
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jul 31 2012, 05:28
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Tsyganoks @ Jul 31 2012, 08:38) *
а в версии для арм ножки сидят на разных портах и как написать продеруру не нагородив кучу if я что-то не понимаю

а вот о таких вещах нужно заботиться на этапе проектировки платы
с другой стороны, у ARM скорость работы уж всяко поболее, чем у 51-го, так что даже с кучей if он выставит в порт нужный сигнал может даже и раза эдак в 2-3 быстрее biggrin.gif
Go to the top of the page
 
+Quote Post
Tsyganoks
сообщение Jul 31 2012, 05:54
Сообщение #5





Группа: Новичок
Сообщений: 7
Регистрация: 7-07-11
Пользователь №: 66 105



Цитата(toweroff @ Jul 31 2012, 08:28) *
а вот о таких вещах нужно заботиться на этапе проектировки платы
с другой стороны, у ARM скорость работы уж всяко поболее, чем у 51-го, так что даже с кучей if он выставит в порт нужный сигнал может даже и раза эдак в 2-3 быстрее biggrin.gif

Даа, вот не подумали...тк с контроллерами дружу недавно, то думал что там так же можно выставить пины, ну и сказали при разводке, что пусть разводят, как удобнее) Вроде додумал, как поменьше процедуру написать, спасибоsm.gif

Вот, может пригодится кому.
Код
void MUX_OFF (void)
{
    LPC_GPIO0->CLR = PIN[6];
    LPC_GPIO0->CLR = PIN[7];
    LPC_GPIO2->CLR = PIN[0];    
}

void MUX (unsigned long kanal)
{
    MUX_OFF();
    LPC_GPIO0->SET = PIN[6]&(kanal<<6);
    LPC_GPIO0->SET = PIN[7]&(kanal<<6);
    LPC_GPIO2->SET = PIN[0]&(kanal>>2);    
}
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 11:42
Рейтинг@Mail.ru


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