• 大小: 11.55MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-01
  • 语言: 其他
  • 标签: 步进可调  

资源简介

基于该程序的调试作品已经有更新两代,性能良好

资源截图

代码片段和文件信息

#include “stdint.h“
#include “math.h“ 


#define MATH_PI (3.1415926f)
#define SINE_TABLE_LEN (1000ul) //Sine表长
#define SPWM_FR_CYCLE (100ul) //输出频率
#define SPWM_FR_POLL (100000ul) //轮询频率
#define SPWM_LOSERANGE (0.0f) //丢失占空比


//是否使用线性插值 
#define SPWM_USE_INTERPOLATION (0)


uint16_t Sine_table[SINE_TABLE_LEN];


void spwm_table_init(int16_t amp);
uint16_t spwm_get_duty_fast();
uint16_t spwm_get_duty();


void spwm_table_init(int16_t amp)
{
uint16_t i;
float bias;

bias = 0.5f * amp;

for(i = 0; i < SINE_TABLE_LEN; i++)
{
Sine_table[i] = roundf(bias + (0.5f - SPWM_LOSERANGE) * amp * sinf(i * 2.0f * MATH_PI / SINE_TABLE_LEN));
}
}

uint16_t spwm_get_duty_fast()
{
static uint32_t index = 0;
static int32_t e = 0;

e += SPWM_FR_CYCLE * SINE_TABLE_LEN;
if(e >= ((int32_t)SPWM_FR_POLL >> 1))
{
e -= SPWM_FR_POLL;
index += 1;
if(index >= SINE_TABLE_LEN)
{
index = 0;
}
}

return Sine_table[index];
}

uint16_t spwm_get_duty()
{
static int32_t e = 0;
static uint16_t index = 0;
uint16_t value;
uint16_t index_next;

e += SPWM_FR_CYCLE * SINE_TABLE_LEN;
index += e / SPWM_FR_POLL;
e %= SPWM_FR_POLL;
index_next = index + 1;
if(index >= SINE_TABLE_LEN)
{
index -= SINE_TABLE_LEN;
}
if(index_next >= SINE_TABLE_LEN)
{
index_next -= SINE_TABLE_LEN;
}
#if SPWM_USE_INTERPOLATION
value = (e * Sine_table[index_next]
+ (SPWM_FR_POLL - e) * Sine_table[index]
+ ((int32_t)SPWM_FR_POLL >> 1)) / SPWM_FR_POLL;
#else
if(e < ((int32_t)SPWM_FR_POLL >> 1))
{
value = Sine_table[index];
}
else
{
value = Sine_table[index_next];
}
#endif
return value;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-08-07 13:24  V2.0单相变频0808\
     目录           0  2017-08-06 18:36  V2.0单相变频0808\CORE\
     文件      109142  2016-04-15 21:57  V2.0单相变频0808\CORE\core_cm4.h
     文件       22735  2016-04-15 21:57  V2.0单相变频0808\CORE\core_cm4_simd.h
     文件       17146  2016-04-15 21:57  V2.0单相变频0808\CORE\core_cmFunc.h
     文件       20513  2016-04-15 21:57  V2.0单相变频0808\CORE\core_cmInstr.h
     文件       29605  2016-04-15 21:57  V2.0单相变频0808\CORE\startup_stm32f40_41xxx.s
     目录           0  2017-08-06 15:31  V2.0单相变频0808\FWLIB\
     目录           0  2017-08-06 17:09  V2.0单相变频0808\FWLIB\inc\
     文件        6924  2017-08-06 17:09  V2.0单相变频0808\FWLIB\inc\misc.h
     文件       32880  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_adc.h
     文件       27318  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_can.h
     文件        2416  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_crc.h
     文件       14481  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_cryp.h
     文件       14946  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_dac.h
     文件        4296  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_dbgmcu.h
     文件       12977  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_dcmi.h
     文件       28882  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_dma.h
     文件       19692  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_dma2d.h
     文件        8012  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_exti.h
     文件       24467  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_flash.h
     文件        3275  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_flash_ramfunc.h
     文件       44924  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_fmc.h
     文件       27181  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_fsmc.h
     文件       23548  2017-07-06 01:40  V2.0单相变频0808\FWLIB\inc\stm32f4xx_gpio.h
     文件       10084  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_hash.h
     文件       31939  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_i2c.h
     文件        4323  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_iwdg.h
     文件       21191  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_ltdc.h
     文件        7728  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_pwr.h
     文件       30063  2016-04-15 21:57  V2.0单相变频0808\FWLIB\inc\stm32f4xx_rcc.h
............此处省略243个文件信息

评论

共有 条评论