Está en la página 1de 1

int PulsadorMas=3;

int PulsadorMenos=2;
int Relacion;
int pwm1=13;
int pwm2=12;
void setup() {
//Configuracion de pines de salida
pinMode(pwm1, OUTPUT);
pinMode(pwm2, OUTPUT);
digitalWrite(pwm2, HIGH);
//Configuraion de pines de entrada
pinMode(PulsadorMas, INPUT_PULLUP);
pinMode(PulsadorMenos, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(PulsadorMas), intMas, FALLING);
attachInterrupt(digitalPinToInterrupt(PulsadorMenos), intMenos, FALLING);
// Configuracion interrupcion del timer 1 en 1Khz
// Setear los registros TCCR1A, TCCR1B y TCNT1
TCCR1A=0;
TCCR1B=0;
TCNT1=0;
// Configurar OCR1A para la frecuencia de 5Khz
OCR1A=399; // (16*10^6)/(5000*8)-1
OCR1B=199;
// Configuracion en modo CTC
TCCR1B|=(1<<WGM12);
// Configuracion del prescalador en 8
TCCR1B|=(1<<CS11);
// Activacion del comparador de la interrupcion
TIMSK1|=(1<<OCIE1A)|(1<<OCIE1B);
}

ISR(TIMER1_COMPB_vect){
digitalWrite(pwm1, HIGH);
digitalWrite(pwm2, LOW);
}
ISR(TIMER1_COMPA_vect){
digitalWrite(pwm1, LOW);
digitalWrite(pwm2, HIGH);

void intMas()
{
if ((OCR1B < OCR1A) and (OCR1B < 389)){
OCR1B=OCR1B+10;
}
}

void intMenos()
{
if ((OCR1B < OCR1A) and (OCR1B >= 10)){
OCR1B=OCR1B-10;
}
}
void loop() {
// put your main code here, to run repeatedly:
}

También podría gustarte