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

 
 
> мигать светодиодом gpio
sergey sva
сообщение Jan 3 2014, 21:38
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Ка попроще мигать светодиодом что то типа такого gpio2 = ^= gpio2;
Подсмотрел пример для lpc43xx тут реализовано так (очень сложно, много букв )) )
Код
    if(bli != 0)
    {
        FIO_SetValue(2,1<<9);
        bli = 0;
    }else{
        FIO_ClearValue(2,1<<9);
        bli = 1;
    }

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Jan 5 2014, 00:16
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(sergey sva @ Jan 4 2014, 13:10) *
Сделаю так, как подсказал mempfis_ как то эстетичней выглядит. ))

Вы это серьезно? Завести переменную чтобы хранить в ней значение другой переменной (бита порта) вы называете "эстетичнее"? У вас в Индии родственников нет случайно?
Я вот открыл user manual на LPC43xx и там английским по белому написано, что у LPC43xx есть специальный регистр для атомарного инвертирования ноги порта:
Код
GPIO1NOT = 1UL << bit;

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

Вы бы хоть указали, какой именно у вас процессор. А то сначала упоминаете LPC43xx, а потом берете код для LPC17xx.

Цитата(mempfis_ @ Jan 4 2014, 10:24) *
И разве Ваш код подойдёт для ARM, где для установки/сброса пина используются разные регистры?
Надо внимательно читать документацию: обычно там есть не только отдельные регистры для установки и сброса. Все это для ARM:

для LPC2xxx
Код
IO1PIN ^= 1UL << bit

для ADuC70xx
Код
GP1DAT ^= 1UL << (bit + 16);

для AT91SAM7
Код
AT91C_BASE_PIOA->PIO_ODSR ^= 1UL << bit;

для LPC11xx, LPC13xx:
Код
LPC_GPIO1->MASKED_ACCESS[1UL << bit] ^= 1UL << bit;

с LPC17хx не приходилось сталкиваться, но должно работать так:
Код
FIO1PIN ^= 1UL << bit;



--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 14:27
Рейтинг@Mail.ru


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