Questão de Engenharia Elétrica — Instrumentação Industrial — FGV 2024
Engenharia ElétricaInstrumentação Industrial
- Código
- fg163022
- Banca
- FGV
- Órgão
- INPE
- Ano
- 2024
- Cargo
- Tecno P1 ( )
O código a seguir é parte de um protocolo para a leitura dos dados do acelerômetro MPU6050. ISR(TWI_vect){ if (I2Cestado == 1){ if ( (TWSR&0xF8)!=COD_START_OK ) TWI_erro(7,I2Cestado); TWDR=MPU_WR; // endereço de escrita no MPU TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE); // envia end. } ... if (I2Cestado == 5){ if ((TWSR&0xF8)!=COD_SLA_RD_ACK) TWI_erro(7,I2Cestado); /* inicia a recepção do dados do MPU */ TWCR = (1<<TWINT) | (1<<TWEA) | (1<<TWEN) | (1<<TWIE); } if (I2Cestado>5 && I2Cestado<18){ if ((TWSR&0xF8)!=COD_RX_DATA_ACK) TWI_erro(7,I2Cestado); MPUvet[MPUix++]=TWDR; // recebe um dado /* prepara para receber próximo dado do MPU */ TWCR = (1<<TWINT) | (1<<TWEA) | (1<<TWEN) | (1<<TWIE); } if (I2Cestado==18){ if ((TWSR&0xF8)!=COD_RX_DATA_ACK) TWI_erro(7,I2Cestado); MPUvet[MPUix++]=TWDR; // recebe penúltimo dado /* prepara para receber o último dado e gerar NACK */ TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE); // NACK } if (I2Cestado == 19){ if ((TWSR&0xF8)!=COD_RX_DATA_NACK) TWI_erro(7,I2Cestado); MPUvet[MPUix++]=TWDR; // recebe último dado TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO); // envia STOP MPUax=(MPUvet[0]<<8) | MPUvet[1]; MPUay=(MPUvet[2]<<8) | MPUvet[3]; MPUaz=(MPUvet[4]<<8) | MPUvet[5]; MPUtp=(MPUvet[6]<<8) | MPUvet[7]; MPUgx=(MPUvet[8]<<8) | MPUvet[9]; MPUgy=(MPUvet[10]<<8)| MPUvet[11]; MPUgz=(MPUvet[12]<<8)| MPUvet[13]; } I2Cestado++; // incrementa estado } Após uma análise preliminar do código acima, é correto concluir que a leitura das informações foi realizada, sequencialmente, em
- A19 etapas seguidas, sem o uso de interrupções.
- B19 etapas em uma única interrupção.
- C19 interrupções
- D19 etapas, sendo 5 na primeira interrupção, 12 em 12 interrupções e duas em outra interrupção
- E19 etapas, sendo as 5 primeiras em 5 interrupções, as 12 seguintes em uma única interrupção e, as duas últimas, em duas interrupções