Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

#include <p30f4011.

h>
#include <stdlib.h>
#include <string.h>
#define t PORTBbits.RB0
#define e PORTBbits.RB1
#define l PORTBbits.RB2
//Prototipos de
Funciones--------------------------------------------------------------------------
-----------------------------------------------------------------
void ports(void);
void timer2(void);
void timer3(void);
void timer1(void);
void timer5(void);
void oc1(void);
void oc2(void);
void oc3(void);
//Funcion
Principal--------------------------------------------------------------------------
----------------------------------------------------------------------------
void main(void)
{
ports();
timer2();
timer3();
timer1();
timer5();
oc1();
oc2();
oc3();
while(1)
{
}
}
//Implementacion de
funciones--------------------------------------------------------------------------
-----------------------------------------------------------
void ports (void)
{
ADPCFG=509;
TRISB=0;
TRISBbits.TRISB1=1;
}
void timer2 (void)
{
T2CON=0;
T2CONbits.TCKPS=0;
TMR2=0;
IEC0bits.T2IE=1;
IPC1bits.T2IP=4;
IFS0bits.T2IF=0;
T2CONbits.TON=1;
}
void oc1(void)
{
OC1CON=0;
OC1CONbits.OCM=6;
OC1R=0;
PR2=65535;
TMR2=0;
IEC0bits.OC1IE=1;
IPC0bits.OC1IP=3;
IFS0bits.OC1IF=0;
}
void timer3 (void)
{
T3CON=0;
T3CONbits.TCKPS=1;
TMR3=0;
IEC0bits.T3IE=1;
IPC1bits.T3IP=4;
IFS0bits.T3IF=0;
T3CONbits.TON=1;
}
void oc2(void)
{
OC2CON=0;
OC2CONbits.OCTSEL=0;
OC2CONbits.OCM=6;
OC2R=0;
PR2=65535;
TMR2=0;
IEC0bits.OC2IE=1;
IPC1bits.OC2IP=3;
IFS0bits.OC2IF=0;
}
void oc3(void)
{
OC3CON=0;
OC3CONbits.OCTSEL=1;
OC3CONbits.OCM=5;
OC3R=0;
PR3=12500;
TMR3=0;
IEC1bits.OC3IE=1;
IPC4bits.OC3IP=3;
IFS1bits.OC3IF=0;
}
void timer1(void)
{
T1CON=0;
T1CONbits.TCKPS=0;
TMR1=0;
PR1=65535;
TRISCbits.TRISC14=1;
T1CONbits.TGATE=1;
IEC0bits.T1IE=1;
IFS0bits.T1IF=0;
IPC0bits.T1IP=5;
T1CONbits.TON=1;
}
void timer5(void)
{
T5CON=0;
T5CONbits.TCKPS=0;
TMR5=0;
PR5=50;
IEC1bits.T5IE=1;
IPC5bits.T5IP=6;
IFS1bits.T5IF=0;
T5CONbits.TON=1;
}
//Interrupciones-------------------------------------------------------------------
-----------------------------------------------------------------------------------
---------
void __attribute__((interrupt, no_auto_pvs)) _T2Interrupt(void)
{
IFS0bits.T2IF=0;
}
void __attribute__((interrupt, no_auto_pvs)) _OC1Interrupt(void)
{
IFS0bits.OC1IF=0;
}
void __attribute__((interrupt, no_auto_pvs)) _T3Interrupt(void)
{
IFS0bits.T3IF=0;
}
void __attribute__((interrupt, no_auto_pvs)) _OC2Interrupt(void)
{
IFS0bits.OC2IF=0;
}
void __attribute__((interrupt, no_auto_pvs)) _OC3Interrupt(void)
{
IFS1bits.OC3IF=0;
}
void __attribute__((interrupt, no_auto_pvs)) _T1Interrupt(void)

{
int n;
n=(TMR1/58);
if(n>=120)
{
l=1;
OC1RS=50000;
OC2RS=50000;
}
else
{
if(n<60 )
{
l=0;
OC1RS=10000;
OC2RS=100;
}
else
{
if(n<800)
{
l=0;
OC1RS=20000;
OC2RS=100;
}
else
{
if(n<100)
{
l=0;
OC1RS=30000;
OC2RS=100;
}
}
}
}
e= !e;
TMR1=0;
IFS0bits.T1IF=0;
}
void __attribute__((interrupt, no_auto_pvs)) _T5Interrupt(void)
{
t= !t;
TMR5=0;
IFS1bits.T5IF=0;
}
//Finish---------------------------------------------------------------------------
-------------------------------------------------------

You might also like