Racunjanje brzine vrtnje enkodera
Embed:
(wiki syntax)
Show/hide line numbers
Bvrtnje.cpp
00001 #include "Bvrtnje.h" 00002 #include "mbed.h" 00003 00004 int b1; 00005 int okr1; 00006 int b2; 00007 int r1, r2; 00008 int f; 00009 int brzina_1; 00010 int brzina_2; 00011 bool smot; 00012 Ticker brzina; 00013 00014 Bvrtnje::Bvrtnje(PinName pin1,PinName pin2) :int1(pin1),int2(pin2) 00015 { 00016 void speed(); 00017 void k_1(); 00018 void d_1(); 00019 void k_2(); 00020 void d_2(); 00021 brzina.attach(&speed, 0.5); 00022 int1.rise(&k_1); 00023 int1.fall(&d_1); 00024 int2.rise(&k_2); 00025 int2.fall(&d_2); 00026 }; 00027 00028 00029 int Bvrtnje::brzina1() 00030 { 00031 return brzina_1; 00032 } 00033 00034 int Bvrtnje:: brzina2() 00035 { 00036 return brzina_2; 00037 } 00038 00039 int Bvrtnje::frekvencija() 00040 { 00041 return f; 00042 } 00043 00044 bool Bvrtnje::smjer () 00045 { 00046 return smot; 00047 } 00048 00049 void k_1() 00050 { 00051 b1=b1+1; 00052 r1=1; 00053 if(r2==0) { 00054 smot=1; 00055 } 00056 00057 }; 00058 00059 void k_2() 00060 { 00061 b2=b2+1; 00062 r2=1; 00063 if(r1==0) { 00064 smot=0; 00065 } 00066 }; 00067 00068 void d_1() 00069 { 00070 r1=0; 00071 }; 00072 00073 void d_2() 00074 { 00075 r2=0; 00076 }; 00077 00078 void speed() 00079 { 00080 brzina_1= (b1/600)*120; // 500ms ticker 00081 brzina_2= (b2/600)*120; 00082 if(b1>0) { 00083 f=(b1)*2; 00084 } else { 00085 f=0; 00086 } 00087 b1=0; 00088 b2=0; 00089 }; 00090
Generated on Thu Aug 4 2022 11:36:15 by
1.7.2