Aula de programação C – 13

13. PRÁTICA 13: CONTROLE DE FREQUÊNCIA DO BEEP

Referencial Teórico: Interrupção Timer 2; Modulação por Largura de Pulso.

Objetivo: Controlar a frequência de acionamento de um buzzer, por meio da modulação por largura de pulso disponível no microcontrolador.

Materiais: Utilizar buzzer presente na placa.

13.1 Arquivo Principal

#include "iniciog.h"
#include "pratica.h"

void main(){

	configura_portas();

	configura_pwm();

	while(1){
		periodo++;
		if (periodo >= 125) periodo = 0;
		define_periodo(periodo);
		espere_por(20);
	}
}

13.2 Arquivo Secundário

// acrescentar ao iniciog.h ou arquivo pratica.h

unsigned periodo = 0;

void define_periodo(unsigned periodo){
	SetDCPWM1(periodo);
}

void configura_pwm(){
	OpenTimer2(TIMER_INT_OFF &T2_PS_1_16);
	OpenPWM1(125); // 1ms = 1Khz
	define_periodo(periodo);
}