Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Манипулирование выводом
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
FormatCft
Код
int main (void)
{    
//off ETM
PINSEL10 = 0;
//GPIO Port 1.10
cbi(PINSEL2, 20);
cbi(PINSEL2, 21);
//P1.10 as out
sbi(IO1DIR, 10);    
//I want to set out
sbi(IO1SET, 10); //<- do not work
}

Может кто-то сталкивался с таким?
Изначально порт висит в третьем состоянии.
Заранее спасибо за ответы.
zltigo
Цитата(FormatCft @ Nov 12 2008, 00:00) *
Заранее спасибо за ответы.

Не использовать бездумно некий cbi()
FormatCft
Цитата(zltigo @ Nov 12 2008, 05:14) *
Не использовать бездумно некий cbi()

По идее пинсел трогать не нужно. Уже включена именно та функция, которая нужно.
Работает одинаково, что с определением пинсел, что без.
Другие порты без проблем работают.
Забыл сказать, что когда мы определяем направление порта, порт переходит из 3-го состояния и определяется выходом. Причем становится в землю. И ни как не получается его поставить в 1.
Навсякий случай приведу описание cbi, sbi взятые из FreeRTOS.
#ifndef sbi
#define sbi(x,y) x|=(1 << (y))
#endif

#ifndef cbi
#define cbi(x,y) x&=~(1 << (y))
#endif

Мужики. Есть какие-нибудь идеи? Принимаются самые смелые идеи.
ssergy
А режим работы порта (нормальный или быстрый) выбирать не пробовали?
Сергей Борщ
Цитата(FormatCft @ Nov 12 2008, 00:00) *
Код
sbi(IO1SET, 10); //<- do not work
Зачем вы делаете |= с IO1SET? Почитайте принцип работы этого регистра. Хотя причина не в этом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.