Dependents: Motorino_Lib xxx_Motorino_Lib
Kanal.cpp@4:be7221f0390c, 2021-10-27 (annotated)
- 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?
User | Revision | Line number | New 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 |