limit spooling speed

master
Eggert Jung 4 years ago
parent 5e9d3578a1
commit 32ee1da8e8

@ -33,7 +33,6 @@ void timer5_init()
OCR5C = 500; OCR5C = 500;
DDRL |= 1 << 5; DDRL |= 1 << 5;
} }
void do_spule(){ void do_spule(){
@ -58,6 +57,10 @@ void do_spule(){
else{ else{
/* speed regulation - keep taenzer at 10% */ /* speed regulation - keep taenzer at 10% */
int32_t tmp = (100 - (int32_t)taenzer_state.pos/1000)*10; int32_t tmp = (100 - (int32_t)taenzer_state.pos/1000)*10;
if(tmp < -75000/abzug_speed/2)
tmp = -75000/abzug_speed/2;
ICR5=75000/abzug_speed + tmp; ICR5=75000/abzug_speed + tmp;
OCR5C = ICR5/2; OCR5C = ICR5/2;