Informática, perguntado por leonanleo2012, 1 ano atrás

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;.

Soluções para a tarefa

Respondido por brununo1000oxxgl6
53
Resposta certa: LETRA B

b) if(PORTB && 0x01) PORTB & = 0x01;
      else PORTB | = 0x01;


maestrobrozrtnd: if(PORTB && 0x01) PORTB &= 0x01;
else PORTB |= 0x01;. Correto
Perguntas interessantes