Vous êtes sur la page 1sur 2

GENERADOR DE FRECUENCIAS dsPIC30f4013 (LENGUAJE C)

El presente cdigo genera una frecuencia determinada en el pin RB7 del


microcontrolador.
#include <xc.h>
#include <stdio.h>
#include <libpic30.h>
#include <stdint.h>
#include <stdbool.h>

#include "system.h"
#include "timer.h"
#include "User_functions.h"

void __attribute__((interrupt,auto_psv)) _T2Interrupt(void);

/************************* COMPLETAR ******************************/


int main (void)
{
InitPort(); // Inicializa puertos (tienen que crear la funcion para sus
puertos)
unsigned char optswitch=0;
unsigned int PR00=62499; // PS=10
unsigned int PR01=18749; // PS=10
unsigned int PR02=12499; // PS=10
unsigned int PR03=46874; // PS=01
while(true){
optswitch=(PORTB&0x000C)>>2;
switch(optswitch){
case(0): // Fb= 1.5Hz
ConfigIntTimer2();
OpenTimer2(0x8020,PR00);
break;
case(1): // Fb= 5Hz

ConfigIntTimer2();
OpenTimer2(0x8020,PR01);
break;
case(2): // Fb= 7.5Hz
ConfigIntTimer2();
OpenTimer2(0x8020,PR02);
break;
case(3): // Fb= 16Hz
ConfigIntTimer2();
OpenTimer2(0x8010,PR03);
break;
}
while(optswitch==((PORTB&0x000C)>>2));{};
}
}
/************************ COMPLETAR ******************************/
void __attribute__((interrupt,auto_psv)) _T2Interrupt(void)
{
PORTBbits.RB7=~PORTBbits.RB7; //Niega la seal de entrada.
IFS0bits.T2IF =0;
}

//Limpia bandera de interrupcin

Vous aimerez peut-être aussi