Todos os sistemas computacionais, assim como os de tempo real, ou sistemas embarcados, são controlados por um programa, elaborado por um ou mais programadores, que controla o resto do conjunto através de periféricos internos e externos devidamente ajustados. Entre os periféricos mais utilizados, de maneira geral podemos destacar as portas digitais, os temporizadores, e as fontes de interrupção.
Nesta questão, você deve desenvolver um algoritmo simples, que utiliza os três periféricos do ATmega328 estudados na terceira unidade: as portas digirais, as interrupções (primeiras), e os temporizadores. A Porta D será conectada à 8 leds, que acenderão, um de cada vez, em sequência. No primeiro ciclo, cada led deve ficar aceso durante 1 segundo. Depois disso (dos oito acionamentos), no segundo ciclo, cada led fica aceso durante 500ms. No terceiro ciclo, esse intervalo cai para 250 ms, e no quarto e último, cada led fica 125 ms aceso. Depois de terminar o quarto ciclo, o sistema deve voltar à fase inicial, o primeiro ciclo. Caso o botão, conectado ao canal PB0, seja acionado, a qualquer instante do processo, sistema deve voltar para a primeira fase (ciclo 1 e led 1). Os intervalos de tempo devem ser gerados a partir do módulo temporizador zero, através de interrupção, assim como o acionamento do botão. Não é necessário que você memorize todos os registradores e comandos para programar, por isso, utiliza como base para a sua solução o programa na figura abaixo. O exemplo pisca o led da placa Arduino em 1 Hz através do temporizador zero em modo comparador (CTC), e reinicia o processo quando um botão, externo à placa, e conectado ao canal PB0, gera uma interrupção. Veja com seu professor se é possível aproveitar as funções de configuração do exemplo, para não as reescrever (mas você deve entender tudo o que ocorre lá!). Agora é hora de trabalhar, vamos lá!
Respostas
respondido por:
0
Esta ai!!!! só enviar!!!
Anexos:
Perguntas similares
6 anos atrás
6 anos atrás
8 anos atrás
8 anos atrás
8 anos atrás