RAčunjanje brzine vrtnje enkodera

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Bvrtnje.cpp Source File

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