|
|
|
|
@ -13,7 +13,7 @@ volatile uint16_t windings_wakeup = 0;
|
|
|
|
|
int32_t spule_trans_pos = 0;
|
|
|
|
|
uint8_t spule_trans_homed = 0;
|
|
|
|
|
|
|
|
|
|
#define TRANS_ROT_FACTOR 0.07
|
|
|
|
|
#define TRANS_ROT_FACTOR 0.14
|
|
|
|
|
|
|
|
|
|
void timer1_init()
|
|
|
|
|
{
|
|
|
|
|
@ -104,12 +104,12 @@ void do_spule(){
|
|
|
|
|
//if(tmp < -7500/abzug_speed/2)
|
|
|
|
|
// tmp = -7500/abzug_speed/2;
|
|
|
|
|
//printf("temp2: %d\n", tmp);
|
|
|
|
|
if(p < 0.75)
|
|
|
|
|
p = 0.75;
|
|
|
|
|
if(p > 1.5)
|
|
|
|
|
p = 1.5;
|
|
|
|
|
if(p < 0.5)
|
|
|
|
|
p = 0.5;
|
|
|
|
|
if(p > 2)
|
|
|
|
|
p = 2;
|
|
|
|
|
|
|
|
|
|
uint16_t base_speed = (7500/abzug_speed);
|
|
|
|
|
uint16_t base_speed = (14000/abzug_speed);
|
|
|
|
|
uint16_t ctrl_speed = base_speed * p;
|
|
|
|
|
|
|
|
|
|
if(ctrl_speed <= 70)
|
|
|
|
|
@ -118,8 +118,6 @@ void do_spule(){
|
|
|
|
|
ICR5 = ctrl_speed;
|
|
|
|
|
OCR5C = ICR5/2;
|
|
|
|
|
|
|
|
|
|
//printf("icr: %d\n", ICR5);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ICR1 = ICR5/TRANS_ROT_FACTOR;
|
|
|
|
|
OCR1A = ICR1/2;
|
|
|
|
|
@ -158,7 +156,7 @@ ISR(TIMER5_OVF_vect) {
|
|
|
|
|
//PORTH &= ~(1<<5);
|
|
|
|
|
static uint16_t steps = 0;
|
|
|
|
|
steps++;
|
|
|
|
|
if(steps == 50000){
|
|
|
|
|
if(steps == 25000){
|
|
|
|
|
windings++;
|
|
|
|
|
steps=0;
|
|
|
|
|
printf("windungen: %d\t", windings);
|
|
|
|
|
|