1. Timer 1 como temporizador:
Implementar hardware e software em linguagem C para o PIC18F4550 para as seguintes especificações:- Configure o Timer 1 como contador de forma que o tempo do timer seja de 10ms
- Faça um looping (comando for) a fim de ter uma função de múltiplos de 1s.
- Como atividade prática faça um led piscar com 1s desligado e 2 s ligado
Dicas de Implementação
- Utilize como base o programa de exemplo com o Timer0.
- Modifique a função de configuração do Timer0 para o Timer1. A configuração do Timer0 é realizada no registrador TCON0, a configuração do Timer1 é realizada no registrador TCON1. Verifique o que cada bit faz, pois, os 2 registradores não são iguais (cada bit pode ter função diferente)
- No Timer1 o pré-scaler disponível é menor, então o tempo máximo mesmo utilizando 16btis é bem mais baixo. Como sugestão, ajuste para o timer1 fazer a contagem para atingir 10ms, pois este valor permite múltiplos que gerem valores inteiros como, por exemplo, 1 segundo.
- Na função de tempo monte um looping (comando “for” por exemplo) para multiplicar o tempo de 10ms para atingir 1s ou múltiplos (utilize uma variável como parâmetro que indique o número de segundos desejados.
2. Timer configurado como interrupção
Implementar hardware e software em linguagem C para o PIC18F4550 para as seguintes especificações:- Utilize 2 Interrupções externas a fim de incrementar e decrementar uma variável.
- Atualizar o LCD a cada 500ms pelo timer configurado como interrupção
- Escolha um módulo timer (0, 1, 2 ou 3).
Dicas e sugestões de implementação
- Para simplificar trabalhe todas interrupções como alta prioridade
- Na função “main” o looping “while(1)” está vazio (não faz nenhuma ação)
- Monte a função de configuração geral das interrupções (a mesma config_int() que foi utilizada nos programa de interrupção externa).
- Crie a função de configuração do Timer para o módulo escolhido (0, 1, 2 ou 3).
- Configure os bits do registrador TCONX para configurar o Timer.
- Configure os bits relativos a interrupção associada ao Timer (IE, IP, IF).
- Dispare o Timer com o tempo escolhido (500ms). Se necessitar utilize um inteirações caso o módulo timer escolhido não atinja o tempo desejado. Ver exemplo de configuração do timer como inetrrupção
- O que atualizar o LCD:
- Coloque no LCD o valor da variável que está sendo controlada pelos botões.
- Para o funcionamento do programa de acordo com as diretrizes (2 botões para incrementar e decrementar uma variável) como os botões trabalharão por interrupção, você precisará:
- A configuração para interrupção externa necessária.
- Na função de interrupção as ações específicas para cada interrupção
3 Controle de velocidade de um motor DC
Uma forma de medir é utilizar um par emissor/receptor de leds infravermelho
Podemos ter esses leds em módulos prontos ou construídos
O circuito para aplicação é simples e consiste de um led alimentado e um receptor que forma um divisor de tensão, que muda o seu valor quando o feixe luminoso é interrompido.
Atividade prática
Implementar hardware e software em linguagem C para o PIC18F4550 para as seguintes especificações:
- Contar o número de voltas do motor DC através de uma interrupção externa (INT0, INT1 ou INT2) gerada por um par infravermelho associado a uma interrupção.
- Configurar um módulo timer para gerar uma interrupção a cada 10s. Nessa interrupção calcule a velocidade em RPM e atualize o LCD com a velocidade corrente.
Nenhum comentário:
Postar um comentário