标题:
程序不正确,请教一下
[打印本页]
作者:
happy2058
时间:
2025-4-18 04:16
标题:
程序不正确,请教一下
u8 EE_RAM =0; //eeprom取值
void Select_function(u8 EE_RAM_PAR) //主菜单显示
{
u8 i,k,h=0;
u8 l = 28;
u8 EE_RA_temp = EE_RAM_PAR;
u8 order = EE_RAM_PAR;
for(i = 0; i < 8; i++)
{
if(0 != (EE_RA_temp & 0x80)) //0X80 = 0B1000 0000
{
k=k+1;
}
EE_RA_temp <<= 1;
}
Loop_sending(k);
switch(k) 第一次上电不知道为什么会运行,放个大于8的数也不行
{
case 1 :for(i = 0; i < 8; i++)
{
if(0 != (order & 0x80))
{
Combination_X = Combination_1X;
Combination_y = Combination_1y;
l += h;
Loop_sending(l);
}
h++;
order <<= 1;
}
break;
default:break;
}
}
作者:
devcang
时间:
2025-4-18 09:12
第一次上电,指新的mcu、未初始化的mcu?
EEPROM 初始值 是 0xff的吧。
作者:
happy2058
时间:
2025-4-18 12:04
devcang 发表于 2025-4-18 09:12
第一次上电,指新的mcu、未初始化的mcu?
EEPROM 初始值 是 0xff的吧。
是的,初始k=0;可不行
作者:
xiaobendan001
时间:
2025-4-18 12:48
不懂,是啥芯片?EE_RAM_PAR是eeprom的数据?
作者:
622323wjl
时间:
2025-4-18 20:50
问题分析 变量未初始化:k 变量在使用之前没有进行初始化,这会使它的值是不确定的,可能会引发计算错误。 注释不规范:部分注释存在多余的空格,并且一些注释没有很好地解释代码的意图。 代码可读性:代码的格式不够清晰,缺少必要的空格和缩进,这会对代码的可读性产生影响。#include <stdint.h> // 假设这些变量在其他地方定义 extern uint8_t Combination_X; extern uint8_t Combination_y; extern uint8_t Combination_1X; extern uint8_t Combination_1y; // eeprom取值 uint8_t EE_RAM = 0; // 假设这个函数在其他地方定义 void Loop_sending(uint8_t value); // 主菜单显示 void Select_function(uint8_t EE_RAM_PAR) { uint8_t i, k = 0, h = 0; uint8_t l = 28; uint8_t EE_RA_temp = EE_RAM_PAR; uint8_t order = EE_RAM_PAR; // 统计 EE_RAM_PAR 中最高位为 1 的位数 for (i = 0; i < 8; i++) { if (0 != (EE_RA_temp & 0x80)) { k++; } EE_RA_temp <<= 1; } Loop_sending(k); switch (k) { case 1: for (i = 0; i < 8; i++) { if (0 != (order & 0x80)) { Combination_X = Combination_1X; Combination_y = Combination_1y; l += h; Loop_sending(l); } h++; order <<= 1; } break; default: break; } }
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1