Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: qonly_controller foc-ed_in_the_bot_compact foc-ed_in_the_bot_compact CurrentModeSine ... more
Fork of FastPWM by
Diff: FastPWM.cpp
- Revision:
- 4:a7b9f778c4b4
- Parent:
- 3:3094d3806cfc
- Child:
- 5:2812f0a115f7
--- a/FastPWM.cpp Wed Jul 25 07:14:39 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-#include "FastPWM.h"
-
-FastPWM::FastPWM(PinName pin) : PWMObject(pin){
- //Set clock source
- LPC_SC->PCLKSEL0|=1<<12;
-
- _duty=0;
- _period=0.02;
- if (pin==p26||pin==LED1) {
- PWMUnit=1;
- MR=&LPC_PWM1->MR1;
- }
- else if (pin==p25||pin==LED2){
- PWMUnit=2;
- MR=&LPC_PWM1->MR2;
- }
- else if (pin==p24||pin==LED3){
- PWMUnit=3;
- MR=&LPC_PWM1->MR3;
- }
- else if (pin==p23||pin==LED4){
- PWMUnit=4;
- MR=&LPC_PWM1->MR4;
- }
- else if (pin==p22){
- PWMUnit=5;
- MR=&LPC_PWM1->MR5;
- }
- else if (pin==p21){
- PWMUnit=6;
- MR=&LPC_PWM1->MR6;
- }
- else
- error("No hardware PWM pin\n\r");
-
- period(_period);
-}
-
-void FastPWM::period(double seconds) {
- LPC_PWM1->MR0 = (unsigned int) (seconds * (double)F_CLK);
- LPC_PWM1->LER |= 1;
- _period = seconds;
- pulsewidth(_duty*_period);
-}
-
-void FastPWM::period_ms(int ms) {
- period((double)ms/1000.0);
-}
-
-void FastPWM::period_us(int us) {
- period((double)us/1000000.0);
-}
-
-void FastPWM::period_us(double us) {
- period(us/1000000.0);
-}
-
-void FastPWM::pulsewidth(double seconds) {
- *MR=(unsigned int) (seconds * (double)F_CLK);
- LPC_PWM1->LER |= 1<<PWMUnit;
- _duty=seconds/_period;
-}
-
-void FastPWM::pulsewidth_ms(int ms) {
- pulsewidth((double)ms/1000.0);
-}
-
-void FastPWM::pulsewidth_us(int us) {
- pulsewidth((double)us/1000000.0);
-}
-
-void FastPWM::pulsewidth_us(double us) {
- pulsewidth(us/1000000.0);
-}
-
-void FastPWM::write(double duty) {
- _duty=duty;
- pulsewidth(duty*_period);
-}
-
-double FastPWM::read( void ) {
- return _duty;
- }
-
-FastPWM & FastPWM::operator= (double value) {
- write(value);
- return(*this);
- }
-
-FastPWM::operator double() {
- return _duty;
-}
-
\ No newline at end of file
