From f1724b090341f971fb8885f0047f38f95162e185 Mon Sep 17 00:00:00 2001 From: clausqr Date: Sat, 16 Jun 2012 23:47:12 -0300 Subject: [PATCH] Added 2 channels to everything except frequency --- Debug/beaglebone-cpp-PWM | Bin 159952 -> 165404 bytes Debug/cPWM.o | Bin 94080 -> 99688 bytes Debug/main.o | Bin 78224 -> 78552 bytes cPWM.cpp | 89 +++++++++++++++++++++++++++++---------- cPWM.h | 23 +++++++--- main.cpp | 27 ++++++++++-- 6 files changed, 106 insertions(+), 33 deletions(-) diff --git a/Debug/beaglebone-cpp-PWM b/Debug/beaglebone-cpp-PWM index 24fcbcd4aaf997c1855c812c52549239b22d974f..bd99e1d62c40c76bdcfaddd6a27db6a0806863fa 100755 GIT binary patch delta 22672 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 delta 19360 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

rafa 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 diff --git a/Debug/cPWM.o b/Debug/cPWM.o index 9fb8eb33b026753c4e68906f69d81b91011bbefc..089e30d03bc6c11a4aa2cf6289f6647c68e89098 100644 GIT binary patch delta 22204 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 delta 17914 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 diff --git a/Debug/main.o b/Debug/main.o index a7303b21a8dacb0283ff0982c379d5b1210e2246..3ccf013fc606d0e848276f23ede8413d093f1091 100644 GIT binary patch delta 2312 zcmaJ?eNa?Y6hG&^-4&Myf~2#;V?RJy6kV5fHDD3g6;{a)%r!&D89w}IDMoh^O2b@6 zC(ULm2_=jK9G?QX8);~0ALs>R8=qNd+Lqg~9-j1?nXSnxwf4_6? zdFP&YdE0i$(D$36&5nKT4u5p0c2a-Y&Ayb8zlTTUpc=FXZ-;q36t4PnmptyeMf$@=)ziSjy`?4%wJ}{!7UF`CQdCkbQNbeqY1g_|Pp&u_ah_!~5uo!TeOt zcE7iLu*`8{a6%OS*Zlx*)ir#8=fAUQDj&dC=WDq40IT0WS2@^Pdt&fS;2=ItOWlsxw$e!0a9FmH|-6hf@ zOSF@{WM?b@5A&j+4ltFO)Lvak0B_M$&;XcrfD%jX>!D~9sV>^rt$Xa6Ck(zKQg_qf zc#ozwQgHGWiabwaf`@a!j68z$BvPYL%xi>+hRfuiUq6lr7tIA1(AJzO044P@sXi@V zQ^`B`un3f{H;|LVhiOD;OPOi{n8sNV{Tpd*qz%*_OaoX?uoDlK>XP)>M6YY@JBQ zsOTuPc}HKG1kdL3vDmm_@6nLp`B6NetrHkO)Yd7C+$GwVqV3Z7Rm~5K*R*v4BX^Tx z>HM0h1k_V9L&tz^{CxJujH-l}i0`8jyHM<#L4z+#ynd|PV_%g}FDD%Z$sjG|>GIg= zG}D7T$y+`pK+_{8Id$g~tSsT_GoC)tJ$v2qnrb;`WA!L6Hb^EprP_dUr2A-Y!6lp_ z{z^obH7~R}6b#i=ELySr@ufAP$AZDi>Kea2tH_-NI8&4=sNyWKR>4ekiRTn_;B4`> zf?4Pm#}%|-eovo*XOc4MrSYX1L6Ej5D@nkeiCL#OnT{FQB`&6;4F`Jeq~ki2Koa#T zW*Ngygj-^-irJD^5(ibxF?y+|20@QZ69X!yus+OsIq7yyFU};rHdidm#2j2NnlsTU zg>ywGQRDWz+b?j~i@D+|>#d}}A*NU{+tijzZ^bMERw`gJ)p}Sokc_9r%T{z6H`@6* zU#Rr_UMnSN^N63UlwddMZcSHhm|{Fa{FKPIQR!VCvC4)y($?u>2O)kdKCqz^Z;G=7 zvLgeiq9Pg5pmK^<=UqqER;l- z11+LNMYB*G_-pFBbcQ9=WC;*f5?<+{_aY;93S%~Y6n%=^G2`3)LLA>8#}CEvBXPVp zj{g$J{}{{Xz|dF$(y0G28y+$Gf6=lfUAbvEeKRNNnEHxM4$NtZ#0pX>;Vh9iu935kF4Do@g6YWTvml zLB{C-y^QqFdzmp0;2*}B0Q}iA&jOgo=mJ>DI2+(eMmOC!#(V&7x7h=5lyJ5Y;25Es z@D%HF0KQ?}3vilsFF4^l7AW9*76|*8&jq-^oUotJJg+Cmi95$f57Q5YME(3q#|w<< z0Ke;aL&w{?|BjAGKPA#6O2kO<79E{B&Sa##ZXLah6kn+O7c&~@qqb5P>UG?#<2D_4 L>G-Pf=VR5sAidwg delta 1954 zcmZvcZA?>V6vxlGw=D>5<$Yag>1~UY7e$KA1{APGs4$o)Os#H_7pGD~fH>JuwiU&M zXwZNpd$ME_v$*W#o3f>GUu16ai<-@s4~zRS4KptL1PyU!S!Cz5w?>-X~dNf4c%@kM4~2nF8(0o*na1cP96-ZjAcu^U<}K(Cv%(B4)2S zda-*xia>EV*03$w?VgY3ttx6?1bMW_`EWEbh;+}?`7Eav%5r~s;n8sH<@d=;8rj^J z?3)5pTSsGqkM@kN8vNcJUf&d$na7!OV_qRZgXUWaj{k)4(&Zz?#-vJ4jm(^oEI2zi zD>a+K^=kQL6Ts`7t?B{HWF<|%Q%!(R>7yzHn0-lNvkz)+kXuB3?AqdPKUv0mRQUtl zYb&`DO3Mgl1G`=h5wbM5NYwVGkl@KCF-)satNvAhx?Y*=qWF48>n^;chM@jk4JG+0 zX6YWHmdzF&z&c(Q(RYwyEj0l6F&m(jYR2dqX)uzyP05v&mGG7^5+V&i@wesxG^YcE z4gP5gpQdvC$BlF87Pm|zc_omIwR#%09A%?NpNU!M)A7o6TFTUsHzKnQRT%U{QfjJeAQ<<|fyA@|0?`Ptok)V{chwj9|;9M!) z19T_*=jI~HuGGqFWOU7b4vftFyGUvbn_H~>rjFWEpzHzi9&rU9*3 zCN>(-j_bt^13JtbR&{jj+@?5=3=dFsdE~4CZyFFpFdr>een7ube-0<4Q?lP!>^G!< zg`bu#pP0@^8%{=IG|7NJIz6rfA0aET6<7IBQ_c9-~^q*kF*{GqsAfKFY|g|N6rJT0Ja`z#;e zYhksa6PtwJMh%Z_;;@aDZFYSkp%iqBG=(aDEEbhS%n^GObfI6I zAjth@j1N7p(9r#6ahGc^nZ-ZMZntpQsV76U*lE>&6{LL_wxd&9TZkY>F4!>zGySw} zZL~!aAiPC98~M(GGGe{B>clU@1C&l&dC;L2<>SZoUnJ!tN&4p`{baS4VHqP? z>u?CGtF{mJ_Z$fwJ=PS0uD#nl`{{JWJ~nj>4>Y|G!|(MUI54z2<>@>+I3!kz@M`!t z4U1CN^JiRmym!F diff --git a/cPWM.cpp b/cPWM.cpp index f186bb3..b406cc2 100644 --- a/cPWM.cpp +++ b/cPWM.cpp @@ -29,31 +29,43 @@ cPWM::cPWM(int id) std::stringstream sysfsfile_dutyA; std::stringstream sysfsfile_dutyB; std::stringstream sysfsfile_period; - std::stringstream sysfsfile_polarity; - std::stringstream sysfsfile_run; - std::stringstream sysfsfile_request; + std::stringstream sysfsfile_polarityA; + std::stringstream sysfsfile_runA; + std::stringstream sysfsfile_requestA; + std::stringstream sysfsfile_polarityB; + std::stringstream sysfsfile_runB; + std::stringstream sysfsfile_requestB; sysfsfile_dutyA << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_A << "/" << SYSFS_EHRPWM_DUTY; sysfsfile_dutyB << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_B << "/" << SYSFS_EHRPWM_DUTY; sysfsfile_period << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_A << "/" << SYSFS_EHRPWM_PERIOD; - sysfsfile_polarity << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_A << "/" << SYSFS_EHRPWM_POLARITY; - sysfsfile_run << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_A << "/" << SYSFS_EHRPWM_RUN; - sysfsfile_request << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_A << "/" << SYSFS_EHRPWM_REQUEST; + sysfsfile_polarityA << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_A << "/" << SYSFS_EHRPWM_POLARITY; + sysfsfile_runA << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_A << "/" << SYSFS_EHRPWM_RUN; + sysfsfile_requestA << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_A << "/" << SYSFS_EHRPWM_REQUEST; + sysfsfile_polarityB << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_B << "/" << SYSFS_EHRPWM_POLARITY; + sysfsfile_runB << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_B << "/" << SYSFS_EHRPWM_RUN; + sysfsfile_requestB << SYSFS_EHRPWM_PREFIX << id << SYSFS_EHRPWM_SUFFIX_B << "/" << SYSFS_EHRPWM_REQUEST; std::cout << "new PWM with id " << id << std::endl; std::cout << "using DutyA file " << sysfsfile_dutyA.str() << std::endl; std::cout << "using DutyB file " << sysfsfile_dutyB.str() << std::endl; - std::cout << "using period file " << sysfsfile_period.str() << std::endl; - std::cout << "using polarity file " << sysfsfile_polarity.str() << std::endl; - std::cout << "using run file " << sysfsfile_run.str() << std::endl; - std::cout << "using request file " << sysfsfile_request.str() << std::endl; + std::cout << "using Period file " << sysfsfile_period.str() << std::endl; + std::cout << "using PolarityA file " << sysfsfile_polarityA.str() << std::endl; + std::cout << "using RunA file " << sysfsfile_runA.str() << std::endl; + std::cout << "using RequestA file " << sysfsfile_requestA.str() << std::endl; + std::cout << "using PolarityB file " << sysfsfile_polarityB.str() << std::endl; + std::cout << "using RunB file " << sysfsfile_runB.str() << std::endl; + std::cout << "using RequestB file " << sysfsfile_requestB.str() << std::endl; sysfsfid_dutyA.open(sysfsfile_dutyA.str().c_str()); sysfsfid_dutyB.open(sysfsfile_dutyB.str().c_str()); sysfsfid_period.open(sysfsfile_period.str().c_str()); - sysfsfid_polarity.open(sysfsfile_polarity.str().c_str()); - sysfsfid_run.open(sysfsfile_run.str().c_str()); - sysfsfid_request.open(sysfsfile_request.str().c_str()); + sysfsfid_polarityA.open(sysfsfile_polarityA.str().c_str()); + sysfsfid_runA.open(sysfsfile_runA.str().c_str()); + sysfsfid_requestA.open(sysfsfile_requestA.str().c_str()); + sysfsfid_polarityB.open(sysfsfile_polarityB.str().c_str()); + sysfsfid_runB.open(sysfsfile_runB.str().c_str()); + sysfsfid_requestB.open(sysfsfile_requestB.str().c_str()); } @@ -85,29 +97,60 @@ int cPWM::Period(int d) return 1; } -int cPWM::Polarity(int d) +int cPWM::PolarityA(int d) { - std::cout << "PWM"<< id << ", polarity set to " << d << std::endl; - cPWM::polarity = d; - sysfsfid_polarity << d << std::endl; + std::cout << "PWMA"<< id << ", polarity set to " << d << std::endl; + cPWM::polarityA = d; + sysfsfid_polarityA << d << std::endl; return 1; } -int cPWM::Run() +int cPWM::RunA() { - std::cout << "PWM"<< id << " started" << std::endl; - sysfsfid_run << "1" << std::endl; + std::cout << "PWMA"<< id << " started" << std::endl; + sysfsfid_runA << "1" << std::endl; + cPWM::runA = 1; return 1; } -int cPWM::Stop() +int cPWM::StopA() { - std::cout << "PWM"<< id << " stopped" << std::endl; - sysfsfid_run << "0" << std::endl; + std::cout << "PWMA"<< id << " stopped" << std::endl; + sysfsfid_runA << "0" << std::endl; + cPWM::runA = 0; return 1; } + +int cPWM::PolarityB(int d) +{ + std::cout << "PWMB"<< id << ", polarity set to " << d << std::endl; + cPWM::polarityB = d; + sysfsfid_polarityB << d << std::endl; + return 1; + } + +int cPWM::RunB() +{ + std::cout << "PWMB"<< id << " started" << std::endl; + cPWM::runB = 1; + sysfsfid_runB << "1" << std::endl; + return 1; +} + +int cPWM::StopB() +{ + std::cout << "PWMB"<< id << " stopped" << std::endl; + cPWM::runB = 0; + sysfsfid_runB << "0" << std::endl; + return 1; +} + cPWM::~cPWM() { + std::cout << "PWMA"<< id << " stopped" << std::endl; + sysfsfid_runA << "0" << std::endl; + std::cout << "PWMB"<< id << " stopped" << std::endl; + sysfsfid_runB << "0" << std::endl; std::cout << "called cPWM destructor of cPWM " << id << std::endl; } diff --git a/cPWM.h b/cPWM.h index 55f3983..e66987e 100644 --- a/cPWM.h +++ b/cPWM.h @@ -18,7 +18,10 @@ class cPWM { int dutyA; int dutyB; int period; - int polarity; + int polarityA; + int polarityB; + int runA; + int runB; /***************************************** ehrpwm.0:0 │   ├── duty_ns @@ -48,9 +51,12 @@ std::stringstream sysfs_file; std::ofstream sysfsfid_dutyA; std::ofstream sysfsfid_dutyB; std::ofstream sysfsfid_period; - std::ofstream sysfsfid_polarity; - std::ofstream sysfsfid_run; - std::ofstream sysfsfid_request; + std::ofstream sysfsfid_polarityA; + std::ofstream sysfsfid_runA; + std::ofstream sysfsfid_requestA; + std::ofstream sysfsfid_polarityB; + std::ofstream sysfsfid_runB; + std::ofstream sysfsfid_requestB; public: @@ -60,9 +66,12 @@ std::stringstream sysfs_file; int DutyA(int d); int DutyB(int d); int Period(int d); - int Polarity(int d); - int Run(); - int Stop(); + int PolarityA(int d); + int RunA(); + int StopA(); + int PolarityB(int d); + int RunB(); + int StopB(); }; } /* namespace cPWM */ diff --git a/main.cpp b/main.cpp index b1389de..dbc8193 100644 --- a/main.cpp +++ b/main.cpp @@ -4,7 +4,7 @@ * Created on: Jun 13, 2012 * Author: claus * - */ + */ #include "cPWM.h" #include #include @@ -20,7 +20,7 @@ int main() { a[i] = new cPWM::cPWM(i); } - + /* a[0]->Period(20000000); a[0]->DutyA( 1000000); a[0]->Polarity(1); @@ -28,9 +28,30 @@ int main() usleep(100000); //pausa de 0.1s=100,000us a[0]->DutyA( 1500000); a[0]->Stop(); + */ + for (int i=0; i<3; i++) + { + // delete(a[i]); + a[i]->Period(20000000); + //usleep(100000); //pausa de 0.1s=100,000us + a[i]->DutyA( 1000000); + //usleep(100000); //pausa de 0.1s=100,000us + a[i]->DutyB( 1000000); + //usleep(100000); //pausa de 0.1s=100,000us + a[i]->PolarityA(1); + //usleep(100000); //pausa de 0.1s=100,000us + a[i]->RunA(); + //usleep(100000); //pausa de 0.1s=100,000us + a[i]->RunB(); + //usleep(100000); //pausa de 0.1s=100,000us + + } + usleep(10000000); for (int i=0; i<3; i++) { - delete(a[i]); + a[i]->StopA(); + a[i]->StopB(); + //usleep(100000); //pausa de 0.1s=100,000us } return 0;