⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9.3.3 直流无刷电机控制的软件设计.txt

📁 直流无刷电机(BLDC)的闭环控制系统汇编代码.
💻 TXT
字号:
#define	POSITION1	b'00010010'
#define	POSITION2	b'00000110'
#define	POSITION3	b'00100100'
#define	POSITION4	b'00100001'
#define	POSITION5	b'00001001'
#define	POSITION6	b'00011000'
#define	DUMMY_POSITION	b'00000000'
;Forward sequence	   					//电机正向转动
	movlw	POSITION2				        //如果HALL信号为000
	movwf	POSITION_TABLE_FWD     				//PWM1&PWM2开通
	movlw	POSITION3						
	movwf	POSITION_TABLE_FWD+1
	movlw	DUMMY_POSITION
	movwf	POSITION_TABLE_FWD+2
	movlw	POSITION4
	movwf	POSITION_TABLE_FWD+3
	movlw	POSITION1
	movwf	POSITION_TABLE_FWD+4
	movlw	DUMMY_POSITION
	movwf	POSITION_TABLE_FWD+5
	movlw	POSITION6
	movwf	POSITION_TABLE_FWD+6
	movlw	POSITION5
	movwf	POSITION_TABLE_FWD+7			   //电机反向转动
	movlw	POSITION5	
	movwf	POSITION_TABLE_REV	
	movlw	POSITION6
	movwf	POSITION_TABLE_REV+1
	movlw	DUMMY_POSITION
	movwf	POSITION_TABLE_REV+2
	movlw	POSITION1
	movwf	POSITION_TABLE_REV+3
	movlw	POSITION4
	movwf	POSITION_TABLE_REV+4
	movlw	DUMMY_POSITION
	movwf	POSITION_TABLE_REV+5
	movlw	POSITION3
	movwf	POSITION_TABLE_REV+6
	movlw	POSITION2
	movwf	POSITION_TABLE_REV+7
换向更新函数

UPDATE_SEQUENCE					    		//更新换向
	btfss	FLAGS1,FWD_REV       		//检测方向命令
	bra		ITS_REVERSE					//如果反向跳转ITS_REVERSE
	lfsr		0,POSITION_TABLE_FWD  	//如果正转,FSR0指向
;forward table的首地址  
	bra		PICK_FROM_TABLE				//前向表
ITS_REVERSE
	lfsr	0,POSITION_TABLE_REV   		//如果反转,FSR0指向
						//反转表的首地址
PICK_FROM_TABLE
	movf	PORTA,W               			//读取HALL状态
	andlw	0x1C						//IC1/IC2/IC3
	rrncf	WREG,W
	rrncf	WREG,W						//移位得到HALL低位数值 
	movf	PLUSW0,W					//从表中读取数值
	movwf	OVDCOND            			//将数值装入OVDCOND中
//更新PWM选择输出端口
	return

CALCULATE_PWM
	movf	SPEED_REFH,W	
	mullw	(PWM_CONSTANT)
	swapf	PRODL,W
	andlw	0x0F
	movwf	PDC_TEMPL
	swapf	PRODH,W
	andlw	0xF0
	iorwf	PDC_TEMPL,F
	swapf	PRODH,W
	andlw	0x0F
	movwf	PDC_TEMPH
	movff	PDC_TEMPH, PDCxH
	movff	PDC_TEMPL, PDCxL
RETURN

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -