antifurto 433mhz

Ciao,
non funziona perché leggi stato fuori del while!!!

int stato= digitalRead(12);
         while (stato==HIGH && lettura==codice_pir) 
            allarme ();

cambia in

while (((stato = digitalRead(12)) == HIGH) && (lettura == codice_pir)) 
            allarme ();