yes

Committer:
braichi13
Date:
Sun May 08 14:39:57 2022 +0000
Revision:
0:c60399891edd
Yes

Who changed what in which revision?

UserRevisionLine numberNew 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