From 914d2dac24d4244907c8d14858c060eeff6fdc8f Mon Sep 17 00:00:00 2001 From: fengbh <1953356163@qq.com> Date: Mon, 15 Jul 2024 02:40:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=AA=E7=8E=AF=E7=A7=BB?= =?UTF-8?q?=E4=BD=8D=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/public.h | 2 ++ src/public.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/include/public.h b/include/public.h index 79ccbea..395bbd3 100644 --- a/include/public.h +++ b/include/public.h @@ -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 diff --git a/src/public.c b/src/public.c index 1a0f08d..e7e731a 100644 --- a/src/public.c +++ b/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; } \ No newline at end of file