Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Microcontroladores e Microprocessadores Modelo de Prova: INTERATIVAS Tipo de Prova: B2 Versão da Prova: 4 Código da Prova: 76676 Questão Respostacorreta Gabarito Comentado 1 E As técnicas de debounce podem ser realizadas tanto em hardware quanto em software. A primeira utiliza componentes conectados ao circuito de entrada, formando, literalmente, um filtro, passivo ou ativo, principalmente para a aquisição de sinais analógicos. Para sinais digitais de entrada, apenas um filtro RC já é suficiente. É verdade que já existe, em cada canal, um resistor interno de pull-up e capacitor, que compõem um filtro. No entanto, por não ser selecionável, e para não atrapalhar em algumas aplicações, a capacitância usada é muito baixa para botões ou chaves (10pF), e por isso é indicado que se utilize um capacitor externo em paralelo, na ordem de 100nF. Desta forma, quando o botão é acionado, as variações, que seriam bruscas, são amortizadas pelo carregamento e descarregamento do capacitor, que gera como resultado uma transição única a cada pressionamento. Outra forma é por software, que seria “menos custosa”, pensando em grandes escalas. Esta consiste simplesmente em contabilizar apenas a primeira transição, dentro de uma sequência de transições seguidas (bounce). A ideia é que, assim uma transição é detectada, o sistema passe por um período (pré-estabelecido) sem contabilizar novos acionamentos, seja por rotinas de delay, ou uso de contadores. Para botões em geral, este período pode ser de 100 a 200ms. 2 D A pilha é usada, principalmente, para armazenar dados temporários, variáveis locais e endereços de retorno após interrupções e chamadas de sub-rotina. O sistema de pilha é implementado de maneira invertida, parte do endereço mais alto e assume endereços menores a partir que a pilha aumenta. A única finalidade do ponteiro de pilha é apontar para endereço do último dado armazenado na pilha, e apenas este pode ser retirado da pilha. Dessa forma, os primeiros dados a serem colocados serão os últimos a serem tirados, seguindo uma fila do tipo LIFO ou FILO – First Input Last Output (primeiro a entrar e último a sair). 3 D Os canais utilizados pela aplicação são o primeiro e o quarto da porta B, a única saída, no canal PB1, deve estar acionada. Assim, os comandos usados PORTB = 0x13, igual a PORTB = 0b00010011, habilita os resistores de pull-up nos canais 0 e 4, e também aciona o led no canal 1. Depois do comando seguinte, DDRB = 0x02, equivalente à DDRB = 0b00000010, o segundo canal é configurado como saída, acionando o led associado. Depois de ter estudado essa seção e analisar as afirmativas, concluímos que a primeira e a última estão erradas, o que torna a primeira alternativa correta. Vamos destacar os erros: I. Este modelo possui três módulos de portas digitais, nomeadas 4 A PortB, PortC e PortD. II. Assim como o tamanho do núcleo (registradores), as portas digitais são também de 8-bit, ou seja, o tamanho de cada registrador, e a quantidade de canais. III. Todas as portas podem ser habilitadas e configuradas de maneira independente, assim como os canais de uma mesma porta, que também podem ser configurados e operar de maneira independente (se a porta estiver habilitada, é claro). IV. A recomendação para o ATmega328 é um dreno de corrente de no máximo 40 mA por canal digital, 100 mA por porta, e 200 mA para todas as portas do chip. 5 D O bit EEPE do registrador EECR tem por objetivo indicar que um processo de escrita da memória está em andamento. Além disto, ao finalizar o processo de escrita, esse bit vai a zero lógico, e a consequente ativação do mesmo indica ao periférico EEPROM que, sendo os valores de endereço e valor a ser escrito validos, um novo processo de escrita pode se iniciar. 6 B Analisando cada caso temos: I. Como serão dados fixos que não se alterarão durante a execução do software, a memória mais indicada é a memória Flash, devido a sua relativa alta capacidade de armazenamento II. Como essa é uma variável auxiliar que sempre que reiniciará durante as novas inserções no laço de repetição, o armazenamento mais lógico é em memória RAM III. Notoriamente, os dados citados são dados críticos que serão alterados durante o ciclo de execução do software e que não podem ser perdidos, dessa forma se justifica seu armazenamento em memória EEPROM. 7 A Durante o processo de leitura ou escrita da memória EEPROM deve- se desabilitar o bit I do registrador SREG, de forma a desabilitar o processo de interrupção global do microcontrolador, evitando assim que haja interrupção do processo de acesso. Com o mesmo propósito, é importante respeitar o tempo de acesso do mesmo (cerca de 3,4ms), logo, em aplicações que utilizem essa memória, deve-se projetar com cautela o momento correto de utilização da mesma. Não é tido como premissa a utilização de uma tecnologia de fonte especifica para o microcontrolador, desde que a mesma possa fornecer um nível de tensão e corrente adequados para a operação do mesmo. 8 E Esse tipo de exercício é muito interessante para aplicar nossos conhecimentos em situações reais, mesmo que exijam um controle simples. Todas as alternativas, exceto a correta, que é a última, apresentam múltiplos erros, tanto de sintaxe quanto de lógica sequencial de processamento (principalmente). Estes erros são comuns de ocorrer, principalmente para estudantes e iniciantes, e quando apresentados antes, ajudam na prevenção de futuros erros. É interessante, além de identificar o erro, prever quais seriam as possíveis consequências, se compilado (erros de sintaxe), ou se for executado na prática. Ou seja, estipular quais seriam as anomalias apresentadas no comportamento do sistema para cada erro encontrado. Cada uma das alternativas será analisada em detalhes a seguir, destacando todos os erros apresentados. Está tudo certo. A alternativa já traz a explicação em si. 9 D A modo mais ágil de se realizar esta operação seria através da inclusão da biblioteca eeprom.h, da posterior declaração de uma variável vetor com 4 elementos e, sempre que for necessário a escrita desses valores em EEPROM, utilizar a função eeprom_write_block, que realiza este processo com uma única linha de código. 10 D Inicialmente, devemos nos recordar que, para a classificação de sistemas de controle, a lógica sequencial e a combinacional são mutuamente exclusivas, ou seja, não existe a possibilidade de um sistema ser híbrido dos dois. Além disso, não existe um sistema que não se classifique em algumas dessas duas opções. Dessa forma, o sistema proposto é sequencial, pois apresenta a necessidade de memória. Consequentemente, se o sistema precisa de memória, irá usar realimentação ou variáveis/máquina de estado. Em termos objetivos, pode-se afirmar que, para este caso, é preciso memória porque haverá situações diferentes em que as entradas serão iguais, porém as saídas devem ser diferentes. Por exemplo, quando o elevador está no meio do trajeto, os sensores serão lidos SA=0 e SB=0, mesmo se o elevador estiver subindo ou descendo, o que, obviamente, requer acionamentos distintos para os relés. Dessa forma, é necessário usar pelo menos dois estados, que podem estar ocultos e implícitos, representados por realimentação do sistema, ou seja, quando alguma saída atual depende de valores anteriores de alguma saída (pode ser a mesma ou não).
Compartilhar