yes
Device/FastPWM_LPC1768.cpp@0:c60399891edd, 2022-05-08 (annotated)
- Committer:
- braichi13
- Date:
- Sun May 08 14:39:57 2022 +0000
- Revision:
- 0:c60399891edd
Yes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
braichi13 | 0:c60399891edd | 1 | #ifdef TARGET_LPC176X |
braichi13 | 0:c60399891edd | 2 | |
braichi13 | 0:c60399891edd | 3 | #include "FastPWM.h" |
braichi13 | 0:c60399891edd | 4 | |
braichi13 | 0:c60399891edd | 5 | void FastPWM::initFastPWM( void ) { |
braichi13 | 0:c60399891edd | 6 | //Set clock source |
braichi13 | 0:c60399891edd | 7 | LPC_SC->PCLKSEL0|=1<<12; |
braichi13 | 0:c60399891edd | 8 | bits = 32; |
braichi13 | 0:c60399891edd | 9 | } |
braichi13 | 0:c60399891edd | 10 | |
braichi13 | 0:c60399891edd | 11 | void FastPWM::pulsewidth_ticks( uint32_t ticks ) { |
braichi13 | 0:c60399891edd | 12 | *(_pwm.MR) = ticks; |
braichi13 | 0:c60399891edd | 13 | LPC_PWM1->LER |= 1 << _pwm.pwm; |
braichi13 | 0:c60399891edd | 14 | } |
braichi13 | 0:c60399891edd | 15 | |
braichi13 | 0:c60399891edd | 16 | void FastPWM::period_ticks( uint32_t ticks ) { |
braichi13 | 0:c60399891edd | 17 | LPC_PWM1->MR0 = ticks; |
braichi13 | 0:c60399891edd | 18 | LPC_PWM1->LER |= 1 << 0; |
braichi13 | 0:c60399891edd | 19 | } |
braichi13 | 0:c60399891edd | 20 | |
braichi13 | 0:c60399891edd | 21 | uint32_t FastPWM::getPeriod( void ) { |
braichi13 | 0:c60399891edd | 22 | return LPC_PWM1->MR0; |
braichi13 | 0:c60399891edd | 23 | } |
braichi13 | 0:c60399891edd | 24 | |
braichi13 | 0:c60399891edd | 25 | //Maybe implemented later, but needing to change the prescaler for a 32-bit |
braichi13 | 0:c60399891edd | 26 | //timer used in PWM mode is kinda unlikely. |
braichi13 | 0:c60399891edd | 27 | //If you really need to do it, rejoice, you can make it run so slow a period is over 40,000 year |
braichi13 | 0:c60399891edd | 28 | uint32_t FastPWM::setPrescaler(uint32_t reqScale) { |
braichi13 | 0:c60399891edd | 29 | //Disable dynamic prescaling |
braichi13 | 0:c60399891edd | 30 | dynamicPrescaler = false; |
braichi13 | 0:c60399891edd | 31 | |
braichi13 | 0:c60399891edd | 32 | return 1; |
braichi13 | 0:c60399891edd | 33 | } |
braichi13 | 0:c60399891edd | 34 | #endif |