You are on page 1of 2

#include <Arduino.

h>
#include "TimerFour.h"
#define phase1 6
#define phase2 7
#define phase3 8
#define ledpin 13
volatile signed short r = -1, s = -1, t = -1;
volatile int stage = 0;
ISR(TIMER4_COMPA_vect) {
r++, s++, t++ , stage++, OCR4A--;
/*
if(r > 0 && r < 19) digitalWrite(phase1, HIGH); //0 19
if(r > 17) digitalWrite(phase1, LOW); //17
if(r > 34) { //24
r = 0;
}
if(s < 16) digitalWrite(phase2, LOW); //16
if(s > 15 && s < 33) digitalWrite(phase2, HIGH);//15 33
if(s > 32) { //32
digitalWrite(phase2, LOW);
s = 0;
}
if(t < 8 || t > 26) digitalWrite(phase3, HIGH); //8 26
if(t > 7 && t < 27) digitalWrite(phase3, LOW); //7 27
if(t > 26) {
t = 0;
}
if(OCR4A <= 0x0007) OCR4A = 0x0007;
*/
switch(stage) {
case 1:
digitalWrite(phase1, HIGH);
digitalWrite(phase2, LOW);
digitalWrite(phase3, LOW);
break;
case 2:
digitalWrite(phase1, HIGH);
digitalWrite(phase2, HIGH);
digitalWrite(phase3, LOW);
break;
case 3:
digitalWrite(phase1, LOW);
digitalWrite(phase2, HIGH);
digitalWrite(phase3, LOW);
break;
case 4:
digitalWrite(phase1, LOW);
digitalWrite(phase2, HIGH);
digitalWrite(phase3, HIGH);
break;
case 5:
digitalWrite(phase1, LOW);
digitalWrite(phase2, LOW);
digitalWrite(phase3, HIGH);
break;
case 6:
digitalWrite(phase1, HIGH);
digitalWrite(phase2, LOW);
digitalWrite(phase3, HIGH);
break;
}
if(stage > 6) stage = 1;
if(OCR4A <= 0x000D)OCR4A = 0x000D;
Serial.println(OCR4A, HEX);
}
void setup() {
Serial.begin(57600);
Serial.println(F_CPU / 1000);
noInterrupts();
TCCR4A = 0;
TCCR4B = 0;
TCCR4A = _BV(WGM40); // COM4A1 COM4A0 COM4B1 COM4B0 COM
4C1 COM4C0 WGM41 WGM40
TCCR4B = _BV(CS42) | _BV(CS40) | _BV(WGM43); // ICNC4 ICES4
WGM43 WGM42 CS42 CS41 CS40
TIMSK4 = _BV(OCIE4A); // ICIE4
OCIE4C OCIE4B OCIE4A TOIE4
OCR4A = 0x0619; // 0x002E = 3ms
// Timer4.initialize();
// Timer4.attachInterrupt(TIMER4_COMPA_vect,1000000);
pinMode(phase1, OUTPUT);
pinMode(phase2, OUTPUT);
pinMode(phase3, OUTPUT);
digitalWrite(phase1, LOW);
digitalWrite(phase2, LOW);
digitalWrite(phase3, LOW);
interrupts();
}
void loop() {
}

You might also like