A PWM library for LPC1768 that enables the sending of n number of PWM impulses through registry editing of LPC1768.
TruePWM.h@0:b3a0656d2b6e, 2015-11-30 (annotated)
- Committer:
- tPelko
- Date:
- Mon Nov 30 02:41:40 2015 +0000
- Revision:
- 0:b3a0656d2b6e
- Child:
- 1:ce44c89d1128
First version that works.; Needs a lot of work.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tPelko | 0:b3a0656d2b6e | 1 | /*--------------TruePWM.h----------*/ |
tPelko | 0:b3a0656d2b6e | 2 | /* |
tPelko | 0:b3a0656d2b6e | 3 | _____ ____ |
tPelko | 0:b3a0656d2b6e | 4 | | \ / / |
tPelko | 0:b3a0656d2b6e | 5 | | \ / / Mechatronics team |
tPelko | 0:b3a0656d2b6e | 6 | | \/ /__ https://developer.mbed.org/teams/TVZ-Mechatronics-Team/ |
tPelko | 0:b3a0656d2b6e | 7 | |
tPelko | 0:b3a0656d2b6e | 8 | Made by: Tomislav Pelko |
tPelko | 0:b3a0656d2b6e | 9 | */ |
tPelko | 0:b3a0656d2b6e | 10 | |
tPelko | 0:b3a0656d2b6e | 11 | /*TruePWM.h is a class for PWM signal generating trugh NXP LPC1768 registry editing*/ |
tPelko | 0:b3a0656d2b6e | 12 | /*It's main feature is a function that enables the sending of n number of PWM impulses*/ |
tPelko | 0:b3a0656d2b6e | 13 | /*Class still has limits in its use, especially in seting pulsewidth in a civil manner for any other pin than P26*/ |
tPelko | 0:b3a0656d2b6e | 14 | /*This is the first working version and there are no guarantees and I'm not resposible for any fualts*/ |
tPelko | 0:b3a0656d2b6e | 15 | |
tPelko | 0:b3a0656d2b6e | 16 | #ifndef MBED_TRUEPWM_H |
tPelko | 0:b3a0656d2b6e | 17 | #define MBED_TRUEPWM_H |
tPelko | 0:b3a0656d2b6e | 18 | |
tPelko | 0:b3a0656d2b6e | 19 | #include "mbed.h" |
tPelko | 0:b3a0656d2b6e | 20 | #include <Ticker.h> |
tPelko | 0:b3a0656d2b6e | 21 | #include "LPC17xx.h" |
tPelko | 0:b3a0656d2b6e | 22 | |
tPelko | 0:b3a0656d2b6e | 23 | class TruePWM { |
tPelko | 0:b3a0656d2b6e | 24 | public: |
tPelko | 0:b3a0656d2b6e | 25 | TruePWM(PinName); |
tPelko | 0:b3a0656d2b6e | 26 | |
tPelko | 0:b3a0656d2b6e | 27 | void stopPWM(); |
tPelko | 0:b3a0656d2b6e | 28 | void startPWM(); |
tPelko | 0:b3a0656d2b6e | 29 | void pulsewidth_us( uint32_t); |
tPelko | 0:b3a0656d2b6e | 30 | void period_us( uint32_t); |
tPelko | 0:b3a0656d2b6e | 31 | uint32_t getPeriod( void ); |
tPelko | 0:b3a0656d2b6e | 32 | uint32_t getPulsewidth(); |
tPelko | 0:b3a0656d2b6e | 33 | void nImpulse(int); //Function for sending n number of pwm impulses |
tPelko | 0:b3a0656d2b6e | 34 | void setDuty(float); |
tPelko | 0:b3a0656d2b6e | 35 | void pulsewidth_us_ind (uint32_t , char); // |
tPelko | 0:b3a0656d2b6e | 36 | |
tPelko | 0:b3a0656d2b6e | 37 | |
tPelko | 0:b3a0656d2b6e | 38 | private: |
tPelko | 0:b3a0656d2b6e | 39 | void initTruePWM(); //For initial setup |
tPelko | 0:b3a0656d2b6e | 40 | Timeout t0; //A timer is used to control the number of PWM impulses sent |
tPelko | 0:b3a0656d2b6e | 41 | |
tPelko | 0:b3a0656d2b6e | 42 | |
tPelko | 0:b3a0656d2b6e | 43 | }; |
tPelko | 0:b3a0656d2b6e | 44 | |
tPelko | 0:b3a0656d2b6e | 45 | #endif |