Library that allows for higher resolution and speed than standard mbed PWM library using same syntax (drop-in replacement).
FastPWM_STM_TIM_PinOut.cpp
00001 #include "mbed.h" 00002 00003 #if defined (TARGET_NUCLEO_F030R8) || (TARGET_DISCO_F051R8) 00004 __IO uint32_t* getChannel(TIM_TypeDef* pwm, PinName pin) { 00005 switch (pin) { 00006 // Channels 1 00007 case PA_4: case PA_6: case PB_1: case PB_4: case PB_8: case PB_9: case PB_14: case PC_6: case PB_6: case PB_7: 00008 return &pwm->CCR1; 00009 00010 // Channels 2 00011 case PA_7: case PB_5: case PC_7: 00012 return &pwm->CCR2; 00013 00014 // Channels 3 00015 case PB_0: case PC_8: 00016 return &pwm->CCR3; 00017 00018 // Channels 4 00019 case PC_9: 00020 return &pwm->CCR4; 00021 } 00022 return NULL; 00023 } 00024 #endif 00025 00026 #if defined (TARGET_NUCLEO_F103RB) || (TARGET_DISCO_F100RB) 00027 __IO uint32_t* getChannel(TIM_TypeDef* pwm, PinName pin) { 00028 switch (pin) { 00029 // Channels 1 : PWMx/1 00030 case PA_6: case PA_8: case PA_15: case PB_4: case PC_6: case PB_13: 00031 return &pwm->CCR1; 00032 00033 // Channels 2 : PWMx/2 00034 case PA_1: case PA_7: case PA_9: case PB_3: case PB_5: case PC_7: case PB_14: 00035 return &pwm->CCR2; 00036 00037 // Channels 3 : PWMx/3 00038 case PA_2: case PA_10: case PB_0: case PB_10: case PC_8: case PB_15: 00039 return &pwm->CCR3; 00040 00041 // Channels 4 : PWMx/4 00042 case PA_3: case PA_11: case PB_1: case PB_11: case PC_9: 00043 return &pwm->CCR4; 00044 } 00045 return NULL; 00046 } 00047 #endif 00048 00049 #if defined TARGET_NUCLEO_F072RB 00050 __IO uint32_t* getChannel(TIM_TypeDef* pwm, PinName pin) { 00051 switch (pin) { 00052 // Channels 1 : PWMx/1 00053 case PA_2: case PA_6: case PA_4: case PA_7: case PA_8: case PB_1: case PB_4: case PB_8: case PB_9: case PB_14: case PC_6: 00054 // Channels 1N : PWMx/1N 00055 case PA_1: case PB_6: case PB_7: case PB_13: 00056 return &pwm->CCR1; 00057 00058 // Channels 2 : PWMx/2 00059 case PA_3: case PA_9: case PB_5: case PC_7: case PB_15: 00060 return &pwm->CCR2; 00061 00062 // Channels 3 : PWMx/3 00063 case PA_10: case PB_0: case PC_8: 00064 return &pwm->CCR3; 00065 00066 // Channels 4 : PWMx/4 00067 case PA_11: case PC_9: 00068 return &pwm->CCR4; 00069 } 00070 return NULL; 00071 } 00072 #endif 00073 00074 00075 00076 #if defined (TARGET_NUCLEO_L152RE) 00077 __IO uint32_t* getChannel(TIM_TypeDef* pwm, PinName pin) { 00078 switch (pin) { 00079 // Channels 1 : PWMx/1 00080 case PA_6: case PB_4: case PB_12: case PB_13: case PC_6: 00081 return &pwm->CCR1; 00082 00083 // Channels 2 : PWMx/2 00084 case PA_1: case PA_7: case PB_3: case PB_5: case PB_14: case PB_7: case PC_7: 00085 return &pwm->CCR2; 00086 00087 // Channels 3 : PWMx/3 00088 case PA_2: case PB_0: case PB_8: case PB_10: case PC_8: 00089 return &pwm->CCR3; 00090 00091 // Channels 4 : PWMx/4 00092 case PA_3: case PB_1:case PB_9: case PB_11: case PC_9: 00093 return &pwm->CCR4; 00094 default: 00095 /* NOP */ 00096 break; 00097 } 00098 return NULL; 00099 } 00100 #endif 00101 00102
Generated on Thu Jul 14 2022 20:50:01 by 1.7.2