Aula de programação C – 10

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();
}