|
|
|
|
@ -59,7 +59,7 @@ void set_spooling_speed(uint16_t speed){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void do_spule(){
|
|
|
|
|
//PORTH &= ~(1<<5);
|
|
|
|
|
// Translatoric axis homeing code
|
|
|
|
|
if(read_Input(IN_SPULE_HOME, LEVEL) && spule_trans_homed == 0){
|
|
|
|
|
spule_trans_homed = 1;
|
|
|
|
|
spule_trans_pos = 0;
|
|
|
|
|
@ -71,12 +71,15 @@ void do_spule(){
|
|
|
|
|
OCR1A = ICR1/2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if not homed goto home
|
|
|
|
|
if(!spule_trans_homed){
|
|
|
|
|
ICR1 = 100;
|
|
|
|
|
OCR1A = 50;
|
|
|
|
|
set_Output(MOTOR_TRANS_DIR, 1); // direction: front
|
|
|
|
|
TCCR1B |= _BV(CS11); //TURN ON
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// manual forwarding if button is held
|
|
|
|
|
else if(!get_abzug_state()){
|
|
|
|
|
if(read_Input(BTN_WICKELN_EIN, LEVEL)){
|
|
|
|
|
set_spooling_speed(300);
|
|
|
|
|
@ -85,12 +88,16 @@ void do_spule(){
|
|
|
|
|
else
|
|
|
|
|
spule_onoff(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// normal operation
|
|
|
|
|
else{
|
|
|
|
|
/* speed regulation - keep taenzer at 10% */
|
|
|
|
|
float p = 100.0/(int32_t)(taenzer_state.pos/1000);
|
|
|
|
|
p-=1;
|
|
|
|
|
p/=2;
|
|
|
|
|
p+=1;
|
|
|
|
|
//tmp = (int32_t)(taenzer_state.pos/10000);
|
|
|
|
|
//printf("%ld\n", tmp);
|
|
|
|
|
|
|
|
|
|
//printf("temp1: %d\n", tmp);
|
|
|
|
|
//TODO fix bounds
|
|
|
|
|
@ -111,6 +118,9 @@ void do_spule(){
|
|
|
|
|
ICR5 = ctrl_speed;
|
|
|
|
|
OCR5C = ICR5/2;
|
|
|
|
|
|
|
|
|
|
//printf("icr: %d\n", ICR5);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ICR1 = ICR5/TRANS_ROT_FACTOR;
|
|
|
|
|
OCR1A = ICR1/2;
|
|
|
|
|
|
|
|
|
|
@ -151,7 +161,8 @@ ISR(TIMER5_OVF_vect) {
|
|
|
|
|
if(steps == 50000){
|
|
|
|
|
windings++;
|
|
|
|
|
steps=0;
|
|
|
|
|
printf("windungen: %d\n", windings);
|
|
|
|
|
printf("windungen: %d\t", windings);
|
|
|
|
|
printf("trans pos: %ld\n", taenzer_state.pos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(windings == windings_wakeup){
|
|
|
|
|
@ -179,5 +190,5 @@ ISR(TIMER5_OVF_vect) {
|
|
|
|
|
OCR1A = ICR1/2;
|
|
|
|
|
printf("nachlauf abbauen\n");
|
|
|
|
|
}
|
|
|
|
|
//PORTH |= (1<<5);
|
|
|
|
|
//;PORTH |= (1<<5);
|
|
|
|
|
}
|
|
|
|
|
|