Ustawianie stanów na pinach mikrokontrolera

0

Cześć,
mam taki kod (zapalenie diody)

#include<msp430x14x.h>
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;  
  P4DIR &= ~0x10;
  P2DIR |= 0x02;
 
  while( 1==1 )
  {
    if( (P4IN & 0x10) != 0) {
      P2OUT |= 0x02;
    } else {
      P2OUT &= ~0x02;
    }
  }
}

Teraz chciałbym zmienić na inna diodę powiedzmy na wyjście P5.5
jak ustawić te wartości? Bo rozumiem, że muszę zamienić polecenia P2OUT i P2DIR ale jakie przypisać im wartości?
Jak to się przelicza? (chodzi mi o 0x02 itp.)

1

Cześć z góry uprzedzę, że nie znam się ale się wypowiem :P. Nigdy nie programowałem mikrokontrolerów TI, ale trochę siedziałem w AVR to może uda mi się pomóc.

#include<msp430x14x.h>
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;  
  P4DIR &= ~0x10;
  P2DIR |= 0x02;
  P5DIR |= 0x10; //ustawiamy kierunek portu P5.5	 

  while( 1==1 )
  {
    //jesli nacisniete
    if( (P4IN & 0x10) != 0)
   {
      //zapalamy P2.2
      P2OUT |= 0x02;
      //gasimy P5.5
      P5OUT &= ~0x10;
    } else {
      //zapalamy P5.5
      P5OUT |= 0x10;
      //gasimy P2.2
      P2OUT &= ~0x02;
    }
  }
} 

Odpowiedź na pytanie jak to się przelicza. Masz rejestr procesora. Musisz ustawić dany bit np 4. Wiec chcesz, żeby w nim wylądowało coś takiego 0b00001000. Przeliczasz to na hexa, bo zapis 0b podobno w C nie powinien być używany i wychodzi 0x08. To jest przykład na 8 bitowe procki, ale bez problemu sobie powinieneś go uogólnić do 16bitów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1