Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Some problems with writing into the pin of a port
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Shedon
Собственно сабж, был у меня кусок программы:
Код
#define SD            IO0PIN_bit.P0_6

for(unsigned char i=0; i<8; i++)
{
    SD = *p & 0x80;
    *p <<= 1;
    SCLK=1;
    SCLK=0;
    Sleep(2);
}

да вот заметил я, что в SD всегда ноль в независимоти от того, что находится в *p
перепивал код так
Код
#define SD            IO0PIN_bit.P0_6

for(unsigned char i=0; i<8; i++)
{
    if( *p & 0x80 ) SD = 1;
    else SD = 0;
    *p <<= 1;
    SCLK=1;
    SCLK=0;
    Sleep(2);
}

и заработало!
Кто-то сталкивался с подобным?

----------------------------------------
Процессор: LPC2214
Компилятор: IAR 4.30A
Отладчик: jLink
Сергей Борщ
Цитата(Shedon @ Oct 15 2006, 20:48) *
Собственно сабж, был у меня кусок программы:

Кусок явно ошибочный.
*p & 0x80 может принимать значения либо 0 либо 0x80, из последнего в 1 бит умещается только последний бит, т.е. 0.

можно написать
SD = (*p & 0x80) != 0, тогда получится. Или SD = (*p & 0x80) ? 1 : 0; или как Вы придумали.

Для окончательного понимания предлагаю такой вариант:
Код
struct {
uint8_t tmp:8;
} var;

var.tmp = 0xFF;
++var.tmp;

чему будет равен var.tmp?
Shedon
Цитата
из последнего в 1 бит умещается только последний бит, т.е. 0.

ступил, спасибо, просто как-то думалось что бит должен быть равен единице при любом значение не равном нулю
DASM
зачем в русскоязычном форуме писать тему на английском ? Выпендрежа ради ? Не стОит, не оценят. В менее лояльных форумах плюсик бы точно выдали
zltigo
Цитата(DASM @ Oct 15 2006, 23:50) *
зачем в русскоязычном форуме писать тему на английском ?

Ну, например, для того, что-бы сообщения об ответе на эту тему уходили в том числе и на мобильного провайдера не подозревающего о существовании разнообразных 'русских' кодировок и на мобильнике можно было прочитать что это такое прибежало...
Здесь, вроде, не форум любителей вязания и каждый по определению обязан немного владеть английским. К чему такая достаточно резкая реакция?
makc
bb-offtopic.gif bb-offtopic.gif bb-offtopic.gif maniac.gif

Обсуждения языков и т.п. не по теме - в разделе "Общение".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.