Visualizza messaggio singolo
Vecchio 21 ottobre 10, 11:21   #49 (permalink)  Top
Davide B.
User
 
Data registr.: 12-04-2006
Residenza: Mondovì
Messaggi: 103
Anche se non è il massimo...
Codice:
#define PULSANTE1 0b00000001
#define PULSANTE2 0b00000010
#define LED1      0b10000000
#define LED2      0b01000000

void main()
{
     trisb=0b00000011 ;
     portb=0;
     while(1)
     {
              // Poichè il solo bit che mi interessa vado a guardare solo
quello
              if ((portb & PULSANTE1) == PULSANTE1)
              {
                 // Questa operazione aritmetica setta il solo bit
                 // corrispondente a LED1
                 portb = portb | LED1;
              }else
              {
                 // Questa operazione resetta il solo bit
                 // corrispondente a LED2
                 portb = portb & (~LED1);
              }
              // Altro modo di vedere se il pulsante è stato premuto
              if ((portb & PULSANTE2) > 0)
              {
                 portb = portb | LED2;
              }else
              {
                 portb = portb & (~LED2);
                 // in pratica, prima inverti L2 e poi fai la AND
              }
     }
}
Davide B. non è collegato   Rispondi citando