BTFSC – BTFSS


BTFSC

questa istruzione legge un bit specificato, e se quel bit è a '0' logico salta l'istruzione successiva, altrimenti, se il bit è a '1' esegue anche l'istruzione successiva. L'ultima 'C' del come significa che controlla se il bit specificato è CLEAR, cioè a '0'. La sintassi


BTFSC NOME_REGISTRO, BIT;


BIT: indica quale degli 8 bit (0...7) del registro specificato devo leggere.

NOME_REGISTRO: indica di quale registro specifico o registro generico devo leggere un bit.


Ipotizzando che il pin RB2 sia un ingresso, voglio leggere se dall'esterno viene fornito un '0' oppure un '1' logico. Procedo nel seguente modo


BTFSC PORTB,2; LEGGO SE IL PIN RB2 E' A '0'

ISTRUZIONE SUCCESSIVA;

ISTRUZIONE 2;


assomiglia molto all'istruzione if … else del linguaggio C-C++. Se il bit specificato è a '0' esegue ISTRUZIONE 2, invece se è a '1' esegue ISTRUZIONE SUCCESSIVA.


BTFSS

questa istruzione legge un bit specificato, e se quel bit è a '1' logico salta l'istruzione successiva, altrimenti, se il bit è a '0' esegue anche l'istruzione successiva. L'ultima 'S' del come significa che controlla se il bit specificato è SET, cioè a '1'. La sintassi


BTFSS NOME_REGISTRO, BIT;


BIT: indica quale degli 8 bit (0...7) del registro specificato devo leggere.

NOME_REGISTRO: indica di quale registro specifico o registro generico devo leggere un bit.


Ipotizzando che il pin RB2 sia un ingresso, voglio leggere se dall'esterno viene fornito un '0' oppure un '1' logico. Procedo nel seguente modo


BTFSS PORTB,2; LEGGO SE IL PIN RB2 E' A '0'

ISTRUZIONE SUCCESSIVA;

ISTRUZIONE 2;


assomiglia molto all'istruzione if … else del linguaggio C-C++. Se il bit specificato è a '1' esegue ISTRUZIONE 2, invece se è a '0' esegue ISTRUZIONE SUCCESSIVA.


Nota – è ovvio che se ISTRUZIONE SUCCESSIVA non è una istruzione di salto (che vedremo nella prossima istruzione), subito dopo questa verrà eseguita ISTRUZIONE 2.