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

📄 eeprom_l.s

📁 一个正在应用的步进电机控制程序,包括电机的调速,正反,细分,通讯控制
💻 S
字号:
	.module eeprom_l.c
	.area text(rom, con, rel)
	.dbfile C:\BJQD\eeprom_l.c
	.dbfunc e EEPROMReadWord _EEPROMReadWord fV
;    eeprom_data -> y+2
;            ptr -> R20,R21
;           word -> R10,R11
;           addr -> R22,R23
	.even
_EEPROMReadWord::
	xcall push_gset3
	movw R10,R18
	movw R22,R16
	sbiw R28,4
	.dbline -1
	.dbline 19
; #include <eeprom.h>
; #include "main.h"
; 
; extern struct cal cal0;
; 
; /*
; eeprom操作模块
; */
; 
; /*
; 从eeprom中读整型变量的值
; */
; 
; #include <eeprom.h>
; /*
; 从eeprom中读整型变量的值
; */
; void EEPROMReadWord(unsigned int addr,unsigned int *word)
; {  
	.dbline 21
;     unsigned char eeprom_data[2];
; 	unsigned char *ptr = (unsigned char *)word;
	movw R20,R10
	.dbline 22
; 	EEPROMReadBytes(addr,eeprom_data,2);
	ldi R24,2
	ldi R25,0
	std y+1,R25
	std y+0,R24
	movw R18,R28
	subi R18,254  ; offset = 2
	sbci R19,255
	movw R16,R22
	xcall _EEPROMReadBytes
	.dbline 23
; 	*ptr = eeprom_data[0];
	ldd R2,y+2
	movw R30,R20
	std z+0,R2
	.dbline 24
; 	ptr++;
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 25
; 	*ptr = eeprom_data[1];
	ldd R2,y+3
	movw R30,R20
	std z+0,R2
	.dbline -2
L1:
	adiw R28,4
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym l eeprom_data 2 A[2:2]c
	.dbsym r ptr 20 pc
	.dbsym r word 10 pi
	.dbsym r addr 22 i
	.dbend
	.dbfunc e EEPROMWriteWord _EEPROMWriteWord fV
;    eeprom_data -> y+2
;            ptr -> R22,R23
;           word -> R10,R11
;           addr -> R20,R21
	.even
_EEPROMWriteWord::
	xcall push_gset3
	movw R10,R18
	movw R20,R16
	sbiw R28,4
	.dbline -1
	.dbline 32
; }
; 
; /*
; 向eeprom中写整型变量的值
; */
; void EEPROMWriteWord(unsigned int addr,unsigned int *word)
; {  
	.dbline 34
;     unsigned char eeprom_data[2];
; 	unsigned char *ptr = (unsigned char *)word;	
	movw R22,R10
	.dbline 35
; 	eeprom_data[0] = *ptr;
	movw R30,R22
	ldd R2,z+0
	std y+2,R2
	.dbline 36
; 	ptr++;
	subi R22,255  ; offset = 1
	sbci R23,255
	.dbline 37
; 	eeprom_data[1] = *ptr;
	movw R30,R22
	ldd R2,z+0
	std y+3,R2
	.dbline 38
; 	EEPROMWriteBytes(addr,eeprom_data,2);
	ldi R24,2
	ldi R25,0
	std y+1,R25
	std y+0,R24
	movw R18,R28
	subi R18,254  ; offset = 2
	sbci R19,255
	movw R16,R20
	xcall _EEPROMWriteBytes
	.dbline -2
L3:
	adiw R28,4
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym l eeprom_data 2 A[2:2]c
	.dbsym r ptr 22 pc
	.dbsym r word 10 pi
	.dbsym r addr 20 i
	.dbend

⌨️ 快捷键说明

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