Atividade 1
Mostrar o funcionamento das atividades em software e em hardwareAtividade 1.1
Implementar em hardware e software em linguagem C para o PIC18F4550 utilizando o exemplo “Exemplo de configuração e uso da INT0”Atividade 1.2
Criar um projeto novo baseado no exemplo “Exemplo de configuração e uso da INT0”, implementar em hardware e software em linguagem C para o PIC18F4550 para que a ação da interrupção seja ascender um led em D1 e mantê-lo ligado por 5 segundos.Atividades 1.3
Criar um projeto novo baseado no exemplo “Exemplo de configuração e uso da INT0”, implementar em hardware e software em linguagem C para o PIC18F4550 para que:- Programa que pisque um led em D4 com 1s ligado e 1s desligado
- Ação da interrupção seja ascender um led em D1 e mantê-lo ligado por 5 segundos.
Atividade 1.4
Criar um projeto novo baseado no exemplo “Exemplo de configuração e uso da INT0”, implementar em hardware e software em linguagem C para o PIC18F4550 para que:- Configure para que o programa utilizar a INT1
- Programa que pisque um led em D4 com 1s ligado e 1s desligado
- Ação da interrupção seja ascender um led em D1 e mantê-lo ligado por 5 segundos.
_________________________________________________________________
Atividade 2
Tratamento de mais de uma interrupção
Quando temos mais de interrupção, é necessário testar qual FLAG está ativo para identificar qual interrupção aconteceu.No exemplo abaixo temos a INT0 e a INT1 dentro da função de interrupção
Separa-se a função pelo teste (IF) do FLAG (INT0IF ou INT1IF) que está em 1, que vai indicar qual interrupção aconteceu.
=======================================================
void interrupt ISRH(void) { // o nome ISRH é escolhido
if (INTCONbits.INT0IF == 1){ // testa se o flag da INT0 está acionado
//
// aqui vai o código relativo a INT0
//
INTCONbits.INT0IF = 0; // Limpa o flag bit da interrupção externa INT0
}
if (INTCON3bits.INT1IF == 1){ // testa se o flag da INT1 está acionado
//
// aqui vai o código relativo a INT1
//
INTCON3bits.INT1IF = 0; // Limpa o flag bit da interrupção externa INT1
}
}
=======================================================
Atividade 2
Implementar hardware e software em linguagem C para o PIC18F4550 para as seguintes especificações:- Botão que zera uma variável a partir da Interrupção Externa 0 (INT0)
- Botão que incrementa uma variável a partir da Interrupção Externa 1 (INT1)
- Botão que decrementa uma varável a partir da Interrupção Externa 2 (INT2)
- Mostrar o valor da variável no display LCD 2 x 16
Apresentação:
- Programa com comentários em cada comando
- Hardware em funcionamento
Hardware sugerido
_________________________________________________________________
Atividade 3
Interrupções Alta e Baixa Prioridade
Comportamento das interrupções com prioridade em eventos de alta (H) e baixa (L)
Ocorrendo um evento H e após um L (durante H)
A interrupção e alta (H) continua rodando e a interrupção de baixa (L) é escalonada para acontecer após a de alta (H) e ao fim desta (L) retornar ao código principal
Ocorrendo um evento L e após um H (durante L)
A interrupção de baixa (L) é parada e a interrupção de alta (H) é iniciada, ao seu término ela retorna ao código da interrupção de baixa (L) e ao fim deste retorna ao código principal
Exemplo de função e interrupção de alta prioridade controlada pela INT0
void interrupt int_alta(void) { // o nome int_alta é escolhido//
// aqui vai o código
//
INTCONbits.INT0IF = 0; // Limpa o flag bit da interrupção externa INT0
}
Exemplo de função e interrupção de baixa prioridade controlada pela INT1
void interrupt low_priority int_baixa(void) { // o nome int_baixa é escolhido//
// aqui vai o código
//
INTCON3bits.INT1IF = 0; // Limpa o flag bit da interrupção externa INT1
}
=============================================================
Atividades 3
Implementar hardware e software em linguagem C para o PIC18F4550 para as seguintes especificações:
- Botão que aciona a Interrupção Externa 0 (INT0)
- Botão que aciona a Interrupção Externa 1 (INT1) com alta prioridade
- Botão que aciona a Interrupção Externa 2 (INT2) com baixa prioridade
- LED 0 para indicação de atividade da Interrupção Externa 0
- LED 1 para indicação de atividade da Interrupção Externa 1
- LED 2 para indicação de atividade da Interrupção Externa 2
- LED 3 “piscante” como atividade principal do programa - while(1)
- Mostrar ações no display LCD 2 x 16
Ações na Interrupção
- Interrupção de alta prioridade
- INT0 – Pisca o LED 0, 8 vezes com tempos de on/off de 0,5s
- INT1 – Pisca o LED 1, 4 vezes com tempos de on/off de 1s
- Baixa Prioridade
- INT2 – Pisca o LED 2, 2 vezes com tempos de on/off de 2s
Obs.: piscar 1 vez significa um cliclo completo de on/off
Mostrar no LCD
- Indicar no LCD o estado de onde se encontra o programa
- Programa principal, piscando o LED 3
- INT0 em H, piscando o LED 0
- INT1 em H, piscando o LED 1
- INT2 em L, piscando o LED 2
Apresentação:
- Programa com comentários em cada comando
- Hardware em funcionamento
Nenhum comentário:
Postar um comentário