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
}
}
}