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
53
Resposta certa: LETRA B
b) if(PORTB && 0x01) PORTB & = 0x01;
else PORTB | = 0x01;
b) if(PORTB && 0x01) PORTB & = 0x01;
else PORTB | = 0x01;
Perguntas interessantes
Ed. Física,
8 meses atrás
História,
8 meses atrás
Matemática,
1 ano atrás
Administração,
1 ano atrás
Pedagogia,
1 ano atrás
Matemática,
1 ano atrás
else PORTB |= 0x01;. Correto