As portas digitais, presentes em praticamente todos os microcontroladores atuais, possuem poucos comandos para se manusear, bem como poucos registradores para configurar, quando comparadas com outros periféricos internos comuns. Por exemplo, para uma entrada, o único comando utilizado é a leitura (além da configuração). Uma saída, pode ser acionada em nível alto, ou baixo. O desafio encontrado no desenvolvimento de programas que utilizam portas digitais é o “momento em que essas simples ações devem ser feitas”.
Considerando a manipulação das portas digitais do microcontrolador ATmega328, em linguagem de programação C, qual das alternativas seguintes possui um comando que não pode ser utilizado para inverter o estado de um led conectado à Porta B, canal zero (já pré-configurado DDRB = 0x01)?
Escolha uma:
a. PORTB = (PINB & 0x01)? 0:1;.
b. if(PORTB && 0x01) PORTB &= 0x01;
else PORTB |= 0x01;.
c. PORTB = PORTB ^ 0xFF;.
d. PINB ^= 1;.
e. if(PINB & 0x01) PORTB = 0x00;
else PORTB = 0x01;.
Respostas
respondido por:
53
Resposta certa: LETRA B
b) if(PORTB && 0x01) PORTB & = 0x01;
else PORTB | = 0x01;
b) if(PORTB && 0x01) PORTB & = 0x01;
else PORTB | = 0x01;
Perguntas similares
6 anos atrás
6 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
else PORTB |= 0x01;. Correto