增加循环移位函数
This commit is contained in:
		| @@ -17,5 +17,7 @@ extern char __xdata receice_password[RESET_PASSWORD_LENGTH]; | ||||
| void delay_10us(u16 ten_us); | ||||
| void delay_ms(u16 ms); | ||||
| u8 auto_reset(u8 rec_data); | ||||
| u8 rotate_left(u8 value, u8 shift); | ||||
| u8 rotate_right(u8 value, u8 shift); | ||||
|  | ||||
| #endif | ||||
|   | ||||
							
								
								
									
										32
									
								
								src/public.c
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								src/public.c
									
									
									
									
									
								
							| @@ -50,4 +50,36 @@ u8 auto_reset(u8 rec_data) | ||||
|  | ||||
| 	ISP_CONTR = 0x60; //软件复位并切换到系统ISP监控程序区开始执行程序 | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| /******************************************************************************* | ||||
| * 函 数 名      : rotate_left | ||||
| * 函数功能      : 循环左移位 | ||||
| * 输    入      : 待移位数值value,移位位数shift | ||||
| * 输    出      : 移位后的数值 | ||||
| *******************************************************************************/ | ||||
| u8 rotate_left(u8 value, u8 shift) { | ||||
|     // 保存最高位 | ||||
|     u8 high_bit = value & 0x80; | ||||
|     // 执行左移操作 | ||||
|     value <<= shift; | ||||
|     // 将最高位循环到最低位 | ||||
|     value |= high_bit >> (8 - shift); | ||||
|     return value; | ||||
| } | ||||
|  | ||||
| /******************************************************************************* | ||||
| * 函 数 名      : rotate_right | ||||
| * 函数功能      : 循环右移位 | ||||
| * 输    入      : 待移位数值value,移位位数shift | ||||
| * 输    出      : 移位后的数值 | ||||
| *******************************************************************************/ | ||||
| u8 rotate_right(u8 value, u8 shift) { | ||||
|     // 保存最低位 | ||||
|     u8 low_bit = value & 0x01; | ||||
|     // 执行右移操作 | ||||
|     value >>= shift; | ||||
|     // 将最低位循环到最高位 | ||||
|     value |= low_bit << (8 - shift); | ||||
|     return value; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user