標題:
程序不正確,請教一下
[打印本頁]
作者:
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的數(shù)也不行
{
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 發(fā)表于 2025-4-18 09:12
第一次上電,指新的mcu、未初始化的mcu?
EEPROM 初始值 是 0xff的吧。
是的,初始k=0;可不行
作者:
xiaobendan001
時間:
2025-4-18 12:48
不懂,是啥芯片?EE_RAM_PAR是eeprom的數(shù)據(jù)?
作者:
622323wjl
時間:
2025-4-18 20:50
問題分析 變量未初始化:k 變量在使用之前沒有進行初始化,這會使它的值是不確定的,可能會引發(fā)計算錯誤。 注釋不規(guī)范:部分注釋存在多余的空格,并且一些注釋沒有很好地解釋代碼的意圖。 代碼可讀性:代碼的格式不夠清晰,缺少必要的空格和縮進,這會對代碼的可讀性產生影響。#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; // 假設這個函數(shù)在其他地方定義 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; // 統(tǒng)計 EE_RAM_PAR 中最高位為 1 的位數(shù) 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.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1