10. PRÁTICA 10: CONTROLE DO MOTOR E LED COM TIMERS
Referencial Teórico: Operadores de atribuição; Laço While; Funções de atraso; Funções.
Objetivo: Controlar o estado de funcionamento de um motor e led presente na placa, por meio da interrupção por tempo.
Materiais: Utilizar led presente na placa, motor de corrente contínua ligado à saída A e fonte de alimentação.
10.1 Arquivo Principal
#include "iniciog.h"
#include "pratica.h"
void main(){
configura_portas();
configura_relogio();
habilita_ponteh();
MTR1_CW = 1;
MTR1_CC = 0;
while(1){
}
}
10.2 Arquivo Secundário
// acrescentar ao iniciog.h ou arquivo pratica.h
void habilita_ponteh(){
MOTOR_AB_EN = 1;
MTR1_EN = 1;
MTR2_EN = 1;
}
// acrescentar ao iniciog // pratica 10
void configura_relogio(){
INTCON = 0b10100000;
T0CON = 0x80; // 20ms
TMR0H = 0x15; // 20ms
TMR0L = 0xA0; // 20ms
}
void zera_relogio(){
INTCONbits.TMR0IF = 0;
TMR0H = 0x15; // 20ms
TMR0L = 0xA0; // 20ms
}
#pragma code int_hr = 0x1848
#pragma interrupt trata_interrupcao
void trata_interrupcao(){
MTR1_EN = ~MTR1_EN;
led = ~led;
zera_relogio();
}