Dependents:   Motorino_Lib xxx_Motorino_Lib

Committer:
jack1930
Date:
Wed Oct 27 16:34:36 2021 +0000
Revision:
4:be7221f0390c
Parent:
0:9d4d08d4e918
Erster Fertigzustand

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jack1930 0:9d4d08d4e918 1 #include "Kanal.h"
jack1930 0:9d4d08d4e918 2
jack1930 0:9d4d08d4e918 3 Kanal::Kanal(int nr)
jack1930 0:9d4d08d4e918 4 {
jack1930 0:9d4d08d4e918 5 this->nr=nr;
jack1930 0:9d4d08d4e918 6 meinMotorino=Motorino::gibMotorino();
jack1930 0:9d4d08d4e918 7 Bewegung=new Thread();
jack1930 0:9d4d08d4e918 8 Bewegung->start(callback(this,&Kanal::fahre));
jack1930 0:9d4d08d4e918 9 }
jack1930 0:9d4d08d4e918 10
jack1930 0:9d4d08d4e918 11 Kanal::Kanal()
jack1930 0:9d4d08d4e918 12 {
jack1930 0:9d4d08d4e918 13 }
jack1930 0:9d4d08d4e918 14
jack1930 0:9d4d08d4e918 15 void Kanal::fahre()
jack1930 0:9d4d08d4e918 16 {
jack1930 0:9d4d08d4e918 17 while(1)
jack1930 0:9d4d08d4e918 18 {
jack1930 0:9d4d08d4e918 19 if (busy==true)
jack1930 0:9d4d08d4e918 20 {
jack1930 0:9d4d08d4e918 21 printf("gestartet %d\r\n",nr);
jack1930 0:9d4d08d4e918 22 for (int i=0;i<zyklen;i++)
jack1930 0:9d4d08d4e918 23 {
jack1930 0:9d4d08d4e918 24 w_alt+=dw;
jack1930 0:9d4d08d4e918 25 //printf("w alt %d zyklen %d\r\n",(int)w_alt,zyklen);
jack1930 4:be7221f0390c 26 meinMotorino->servo(w_alt,nr,start,end); //pos 0..180°
jack1930 0:9d4d08d4e918 27 ThisThread::sleep_for(25ms);
jack1930 0:9d4d08d4e918 28 }
jack1930 0:9d4d08d4e918 29 meinMotorino->servo(w_ziel,nr,start,end); //pos 0..180°
jack1930 0:9d4d08d4e918 30 w_alt=w_ziel;
jack1930 0:9d4d08d4e918 31 busy=false;
jack1930 0:9d4d08d4e918 32 }
jack1930 0:9d4d08d4e918 33 ThisThread::sleep_for(50ms);
jack1930 0:9d4d08d4e918 34 }
jack1930 0:9d4d08d4e918 35 }
jack1930 0:9d4d08d4e918 36
jack1930 0:9d4d08d4e918 37 void Kanal::go(float w, int zeit) //Zeit in ms
jack1930 0:9d4d08d4e918 38 {
jack1930 0:9d4d08d4e918 39 printf("gostart %d, %d, %d\r\n",(int)w,zeit,(int) busy);
jack1930 0:9d4d08d4e918 40 if (busy==false)
jack1930 0:9d4d08d4e918 41 {
jack1930 0:9d4d08d4e918 42 zyklen=zeit/25;
jack1930 0:9d4d08d4e918 43 dw=(w-w_alt)/zyklen;
jack1930 0:9d4d08d4e918 44 w_ziel=w;
jack1930 0:9d4d08d4e918 45 busy=true;
jack1930 0:9d4d08d4e918 46 }
jack1930 0:9d4d08d4e918 47
jack1930 0:9d4d08d4e918 48 }
jack1930 0:9d4d08d4e918 49
jack1930 4:be7221f0390c 50 void Kanal::grundstellung(float w)
jack1930 4:be7221f0390c 51 {
jack1930 4:be7221f0390c 52 meinMotorino->servo(w,nr,start,end); //pos 0..180°
jack1930 4:be7221f0390c 53 w_alt=w;
jack1930 4:be7221f0390c 54 }
jack1930 4:be7221f0390c 55
jack1930 0:9d4d08d4e918 56 bool Kanal::isBusy()
jack1930 0:9d4d08d4e918 57 {
jack1930 0:9d4d08d4e918 58 //if (busy==false) Bewegung.terminate();
jack1930 0:9d4d08d4e918 59 return busy;
jack1930 0:9d4d08d4e918 60 }
jack1930 0:9d4d08d4e918 61
jack1930 0:9d4d08d4e918 62 void Kanal::setStartEnd(float pStart, float pEnd)
jack1930 0:9d4d08d4e918 63 {
jack1930 0:9d4d08d4e918 64 if (pStart>0 && pStart<100 && pStart<pEnd) start=pStart;
jack1930 0:9d4d08d4e918 65 if (pEnd>0 && pEnd<100 && pStart<pEnd) end=pEnd;
jack1930 0:9d4d08d4e918 66 }
jack1930 0:9d4d08d4e918 67