資源簡介
有感無刷電機驅動程序 已調試通過。 主控芯片stm8s903,HALL換向

代碼片段和文件信息
/*?MAIN.C?file
摘要:
1.PD7延時反轉,指示系統工作。
2.上電,按指定PWM輸出換相,實現電機基本運轉功能。
3.換相依據為HALl信號,采用PORTD中斷功能完成.
總之,上電根據HALL狀態換相,并在輸出PWM信號后,電機會轉動,
同時HALL信號不斷改變,然后進入捕獲中斷,進行及時換相。
如此實現電機的運轉控制。
2013.5.8
?*/
#include?“stm8s.h“
#define?STM8_FREQ_MHZ?16
#define?PWM_FREQUENCY?16000
static?const?u32?hArrPwmVal?=?((u16)((STM8_FREQ_MHZ?*?(u32)1000000)/PWM_FREQUENCY));
//PWM信號周期
#define?PWMOUT?0
//按15%占空比輸出
//六步法中,CH1\CH2通道極性及使能配置
//六步法中,CH3通道極性及使能配置
//ABACBCBACACB
//const?unsigned?char?PWM_EN1_TAB[6]={0x010x010x100x100x000x00};?//1為使能?//已改為:CH1->A
//const?unsigned?char?PWM_EN2_TAB[6]={0x000x000x000x000x010x01};
const?unsigned?char?PWM_EN1_TAB[6]={0x000x000x100x100x010x01};
//六步法中,CH1\CH2通道極性及使能配置
const?unsigned?char?PWM_EN2_TAB[6]={0x010x010x000x000x000x00};
//六步法中,CH3通道極性及使能配置
static?unsigned?char?DIR_F=0;//DIR_F=1 ->?CW?DIR_F=0?->?CCW
unsigned?char?bHallSteps[2][8]={
{72014357}//正轉
{75341027}//反轉
};
//unsigned?char?bHallSteps[2][8]={
//{74052317}//正轉
//{71325047}//反轉
//};
//0?1?2?3?4?5?6?7?8
// 4 ????
//上橋臂開關控制端口定義
#define?MCO1_PORT?GPIOC
#define?MCO1_PIN GPIO_PIN_3
#define?MCO3_PORT?GPIOC
#define?MCO3_PIN GPIO_PIN_7
#define?MCO5_PORT?GPIOC
#define?MCO5_PIN GPIO_PIN_6
//下橋臂開關控制端口定義
#define?MCO0_PORT?GPIOC
#define?MCO0_PIN GPIO_PIN_2
#define?MCO2_PORT?GPIOC
#define?MCO2_PIN GPIO_PIN_1
#define?MCO4_PORT?GPIOE
#define?MCO4_PIN GPIO_PIN_5
//下橋臂低電平開關管導通
#define?PWM_A_OFF?MCO0_PORT->ODR?|=?(u8)MCO0_PIN;?
#define?PWM_B_OFF?MCO2_PORT->ODR?|=?(u8)MCO2_PIN;?
#define?PWM_C_OFF?MCO4_PORT->ODR?|=?(u8)MCO4_PIN;?
#define?PWM_A_ON?MCO0_PORT->ODR?&=?(u8)(~MCO0_PIN);?
#define?PWM_B_ON?MCO2_PORT->ODR?&=?(u8)(~MCO2_PIN);?
#define?PWM_C_ON?MCO4_PORT->ODR?&=?(u8)(~MCO4_PIN);?
//霍爾引腳定義
#define?H1_PORT?GPIOD->IDR
#define?H1_PIN??BIT2
#define?H2_PORT?GPIOD->IDR
#define?H2_PIN??BIT3
#define?H3_PORT?GPIOD->IDR
#define?H3_PIN??BIT4
/*?Private?vars?and?define?*/
#define?BIT0?0x01
#define?BIT1?0x02
#define?BIT2?0x04
#define?BIT3?0x08
#define?BIT4?0x10
#define?BIT5?0x20
#define?BIT6?0x40
#define?BIT7?0x80
//換相子函數聲明
void?Commutation(unsigned?char?bHallStartStepunsigned?int?OutPwmValue);
unsigned?int?outpwm=0;
u16?Conversion_Val;
//初始化按鍵,指示燈端口
void?GPIO_int(void)
{
?/*?LEDs?*/
GPIO_Init(GPIOD?GPIO_PIN_7?GPIO_MODE_OUT_PP_HIGH_FAST);
}
//系統時鐘配置:內部16M
void?Clock_init(void)
{
/*?Select?fCPU?=?16MHz?*/
??CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
}
//換相電路開關管IO初始化
void?PWM_IO_init(void)
{
??//PB012?下橋臂0有效?配置為高電平
GPIO_Init(MCO0_PORT?MCO0_PINGPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(MCO2_PORT?MCO2_PINGPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(MCO4_PORT?MCO4_PINGPIO_MODE_OUT_PP_HIGH_FAST);
//PC123?上橋臂1有效配置為低電平
GPIO_Init(MCO1_PORT?MCO1_PINGPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(MCO3_PORT?MCO3_PINGPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(MCO5_PORT?MCO5_PINGPIO_MODE_OUT_PP_LOW_FAST);
}
void?Tim1_in
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6465??2018-11-11?22:26??7.7.2?RUN?WITH?HALL_MY\bldc.dep
?????文件????????974??2018-11-11?22:26??7.7.2?RUN?WITH?HALL_MY\bldc.pdb
?????文件??????16786??2018-11-08?18:39??7.7.2?RUN?WITH?HALL_MY\bldc.stp
?????文件????????500??2018-11-10?21:23??7.7.2?RUN?WITH?HALL_MY\bldc_Programmer\bldc_STVP.stp
?????文件????????103??2018-11-10?21:23??7.7.2?RUN?WITH?HALL_MY\bldc_Programmer\bldc_STVP_OPTION?BYTE.hex
?????文件????????455??2018-11-10?21:24??7.7.2?RUN?WITH?HALL_MY\checkres.spy
?????文件??????37735??2018-11-10?21:22??7.7.2?RUN?WITH?HALL_MY\Debug\bldc.elf
?????文件???????2387??2018-11-08?18:27??7.7.2?RUN?WITH?HALL_MY\Debug\bldc.lkf
?????文件??????41032??2018-11-10?21:22??7.7.2?RUN?WITH?HALL_MY\Debug\bldc.map
?????文件??????14252??2018-11-10?21:22??7.7.2?RUN?WITH?HALL_MY\Debug\bldc.s19
?????文件?????106076??2018-11-10?21:22??7.7.2?RUN?WITH?HALL_MY\Debug\bldc.sm8
?????文件??????31546??2018-11-10?21:22??7.7.2?RUN?WITH?HALL_MY\Debug\main.ls
?????文件??????12257??2018-11-10?21:22??7.7.2?RUN?WITH?HALL_MY\Debug\main.o
?????文件??????44376??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_adc1.ls
?????文件??????18362??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_adc1.o
?????文件??????38676??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_clk.ls
?????文件??????18658??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_clk.o
?????文件??????10330??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_exti.ls
?????文件???????4490??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_exti.o
?????文件??????10529??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_gpio.ls
?????文件???????6919??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_gpio.o
?????文件?????117482??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_tim1.ls
?????文件??????57927??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_tim1.o
?????文件??????72848??2013-05-10?12:04??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_tim5.ls
?????文件??????36579??2013-05-10?12:04??7.7.2?RUN?WITH?HALL_MY\Debug\stm8s_tim5.o
?????文件???????5537??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8_interrupt_vector.ls
?????文件???????2813??2018-11-10?14:34??7.7.2?RUN?WITH?HALL_MY\Debug\stm8_interrupt_vector.o
?????文件?????114637??2013-05-09?16:08??7.7.2?RUN?WITH?HALL_MY\Libraries\inc\stm8s.h
?????文件??????15026??2011-02-25?17:22??7.7.2?RUN?WITH?HALL_MY\Libraries\inc\stm8s_adc1.h
?????文件??????11473??2011-02-25?17:22??7.7.2?RUN?WITH?HALL_MY\Libraries\inc\stm8s_adc2.h
............此處省略79個文件信息
評論
共有 條評論