Files
Corwin Perren b300c76103 Added old firmware and pcb design files
These are all design documents that I thought I had lost. It's may make
me cringe, but it's still cool to use it to see how far I've come.
2016-05-12 20:04:43 -07:00

92 lines
1.4 KiB
C++

#include "AxisClass.h"
#include <Arduino.h>
extern const unsigned char Microstep[6][3];
Axis::Axis (unsigned char AxisStep, unsigned char AxisDir, unsigned char AxisM0, unsigned char AxisM1, unsigned char AxisM2, unsigned char AxisFault){
p_Step = AxisStep;
p_Dir = AxisDir;
p_M0 = AxisM0;
p_M1 = AxisM1;
p_M2 = AxisM2;
p_Fault = AxisFault;
DelVal = 8;
pinMode(p_Step, OUTPUT);
pinMode(p_Dir, OUTPUT);
pinMode(p_M0, OUTPUT);
pinMode(p_M1, OUTPUT);
pinMode(p_M2, OUTPUT);
pinMode(p_Fault, INPUT);
SetMicrostep(8);
}
void Axis::SetMicrostep(unsigned char Level){
unsigned char row = -1;
switch (Level){
case 1:
row = 0;
break;
case 2:
row = 1;
break;
case 4:
row = 2;
break;
case 8:
row = 3;
break;
case 16:
row = 4;
break;
case 32:
row = 5;
break;
}
digitalWrite(p_M0, Microstep[row][0]);
digitalWrite(p_M1, Microstep[row][1]);
digitalWrite(p_M2, Microstep[row][2]);
}
void Axis::StepForward(){
digitalWrite(p_Dir, HIGH);
digitalWrite(p_Step, HIGH);
digitalWrite(p_Step, LOW);
}
void Axis::StepBackward(){
digitalWrite(p_Dir, LOW);
digitalWrite(p_Step, HIGH);
digitalWrite(p_Step, LOW);
}
int Axis::SetRPM(int RPM){
int CountVal = ((16000000L/8)/((200L*8*RPM)/60));
cli();
OCR1A = CountVal;
sei();
return CountVal;
}
void Axis::SetDelay(unsigned int delLen){
DelVal = delLen;
}