This shows you the differences between two versions of the page.
| pt:exercises:ui [2015/12/10 18:12] – Criação deste novo documento. artica | pt:exercises:ui [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | < | ||
| + | ====== Exercicios ====== | ||
| + | |||
| + | O objetivo é escrever um programa que é capaz de realizar tarefas descritas abaixo. | ||
| + | |||
| + | ===== Exercicios de aquecimento ===== | ||
| + | |||
| + | *Ao pressionar S1 um LED acende, pressionando S2 dois LEDs acendem e S3 três LEDs acendem. | ||
| + | |||
| + | ===== Para iniciantes ===== | ||
| + | |||
| + | - Isto simula semáforos de carros. | ||
| + | - Isto simula semáforos manuais para peões. Enquanto nenhum botão seja pressionado um LED verde está aceso para os carros. Depois de pressionar um botão (S1), o LED verde começará a piscar durante 3 segundos, o que é seguido da iluminação do LED amarelo por 3 segundos e vermelho durante 10 segundos, depois desta sequência o LED verde fica aceso novamente. Quando o LED vermelho está aceso, o display de 7 segmentos indica a contagem decrescente dos segundos até que o LED verde se ligue. | ||
| + | - Isto conta quantas vezes o botão é pressionado. O resultado é exibido através do piscar dos LEDs. Após cada pressionamento o número de piscar aumentada de um. Um botão aleatório pode ser seleccionado. Para que o LED pisque uma sub função deve ser utilizada, com parâmetros definidos no número de piscadelas. | ||
| + | - Apresentar números em sistema hexadecimal aleatóriamente no display de 7 segmentos. A freqüência é de 1 Hz. | ||
| + | - Ao pressionar o botão S1, a velocidade intermitente de todos os três LEDs é diminuida duas vezes. Ao pressionar o botão S3, o piscar torna-se 2 vezes mais rápido, e ao pressiona a tecla S2 a frequência do piscar será re-definido para 1 Hz. É necessário usar interruptor (não funções de atraso por software). | ||
| + | - Criar três músicas, que são tocadas quando o botão é pressionado. A alteração da música deve ser instantânea quando outro botão for pressionado. | ||
| + | |||
| + | ===== Para avançados ===== | ||
| + | |||
| + | - Quando pressionar os botões em sequência S3 - S2 - S1, o LED verde fica aceso. Todas as outras combinações resultam no LED vermelho. Cada vez que algum botão seja premido um LED amarelo irá piscar. | ||
| + | - Há um botão para cada LED. O controlador pisca LEDs aleatoriamente e o utilizador tem de repetir a seqüência. A sequência de piscar fica maior - um LED aleatório é adicionado em cada ronda. A sequência é controlada depois de cada utilizador. O intervalo de tempo entre cada entrada é de dois segundos. No caso de uma entrada incorreta todos os LEDs piscam três vezes. (O número de entradas corretas por parte do utilizador pode ser exibido no ecrãn LCD). | ||
| + | - Luz em sequência de 6 segmentos de fora circulares sobre o indicador de 7 segmentos com o período de 500 ms. | ||
| + | - Faça um programa onde pode mover o símbolo " | ||
| + | - Implemente o jogo da cobra no ecrãn LCD. A largura da cobra é de 1 pixel e o comprimento é de 5 pixels. A cobra pode ser programada para virar usando os botões de esquerda ou direita. A cobra deve ser capaz de evitar a colisão com a borda do ecrãn (girando antes). Os pontos de bónus são para a capacidade de apanhar as maças e fazer a cobra crescer. A solução mais simples é desenhar a cobra usando a letra " | ||
| + | |||
| + | ===== Questões ===== | ||
| + | |||
| + | - Qual é a diferença entre as operações " | ||
| + | - Qual é a diferença entre as operações " | ||
| + | - Escreva uma expressão utilizando a equação "x = x + 1" doze vezes. | ||
| + | - Como é que um loop infinito é escrito em linguagem de programação C? Forneça dois exemplos diferentes. | ||
| + | - Que tipo de variável pode ser escolhida em linguagem C para apresentar valores positivos entre 7 e 154? | ||
| + | - Que tipo de registo determina a direção de uma porta? Dê um exemplo de como configurar as definições de entrada e saída de portos. | ||
| + | - Quais são os métodos para eliminar o salto dos contactos e as falsas ligações causados por cintilação? | ||
| + | - O que é um bit shift? Dê um exemplo prático com uma explicação. | ||
| + | - Por que motivo são as resistências pull-up usadas em interruptores? | ||
| + | - Calcule a resistência para a regulação da corrente LED, a tensão é de 5 V, tensão para a frente do LED é de 2,7 V e a corrente é 30 mA. | ||
| + | - Quantos pinos usa o indicador de números de 7 segmentos (com segmento de ponto), se estiver conectado diretamente ao controlador? | ||
| + | - O que determina o brilho do indicador de números de 7 segmentos? Como ele pode ser ajustado se o indicador de número é controladao a) diretamente b) através do registo de deslocamento 74HC595? | ||
| + | - Como podem os números no sistema decimal ser convertidos em sistema binário (de texto) e vice-versa? | ||
| + | - Como é o LCD monocromático (preto e branco) diferente do LCD de cor? | ||
| + | - Como é criado o atraso por software? Em que parâmetros depende a duração do atraso de software? | ||
| + | - O que nos faz usar atraso de hardware / temporizador com interrupções? | ||
| + | - Calcular o período de interrupção de estouro de 8-bit timer, se a velocidade do relógio é de 16 MHz e freqüência de divisão é 1024. | ||
| + | - O que pode ser feito com os temporizadores AVR além de contar o tempo? | ||
| + | - Qual é a maior duração das interrupções em milissegundos que pode ser alcançado com o microcontrolador ATxmega128A1U que trabalham na frequência de relógio de 32 MHz? Mostrar a fórmula de cálculo. | ||
| + | - No caso de o processador estar muito carregado com uma execução de um programa (por exemplo, que controla diversos motores e os valores de vários sensores de uma só vez), isto tem um efeito sobre a precisão do temporizador? | ||
| + | |||