07-06-2007, 11:49
|
|
|
חבר מתאריך: 17.05.05
הודעות: 7,321
|
|
ציטוט:
תזכור השמספר שאתה מקבל N זזה לא המספר שאתה יכול להוציא אותו , אתה חייב לבצע איתו משהו .
|
נו...ו?
הקוד שהראתי אומר שלא עשיתי איתו כלום?
ה-3 נקודות מסמלות את המשך הקוד שאמור להיות ידוע לכולם.
ואם הוא לא ידוע, ואם אני זוכר טוב מה כתבתי, אז הוא אמור להיות כזה:
קוד:
int const Leds[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80},
LedPort = 0x378;
...
if (N>0 && N<9)
{
outp(LedPort, Leds[--N]);
delay(N*1000);
outp(LedPort, 0);
}
הדבר היחידי שאני חושב שטעיתי בתרגיל הזה, הוא שכתבתי (אולי...אני לא בטוח) שהמשתנה Leds הוא גם מסוג unsigned וזה לא נכון לגבי האיבר האחרון שבמערך הזה - 0x80. כי אז הביט הכי שמאלי הוא 1 וזה מסמל על שליליות ... (או שלא?).
בעצם יכול להיות שזה עדיין בסדר ה-unsigned כי זה משתנה מסוג int ולא מסוג short.
אם זה היה משתנה מסוג short אז ה-unsigned באמת היה טעות.
נערך לאחרונה ע"י DCD בתאריך 07-06-2007 בשעה 11:53.
|