SOGO論壇
標題:
關於C#回傳值
[列印本頁]
作者:
乂羽人乂
時間:
2013-10-28 23:15:25
標題:
關於C#回傳值
這是小弟寫的一小段副程式,我用8051做了好幾次都沒有出現我要的程式動作,不知道有什麼方法可以顯示我現在按幾次按鈕,還有我是哪裡寫法寫錯了嗎?
int push(unsigned int k)
{
int x;
while(1)
{
if (SW == 0) //SW代表按鈕
{
x =k++;
_delayms(50);
return(x);
}
}
}
作者:
alphi
時間:
2013-10-29 12:53:39
您的程式碼有些問題. 你可以將k設定為全域變數,或者將x 設成靜態變數,例如
unsigned int k=0;
int push(void)
{
int x;
while(1)
{
if (SW == 0) //SW代表按鈕
{
x =k++; //這邊是那裏給k值?
_delayms(50);
return(x);
}
}
}
複製代碼
或者將x設為靜態變數
int push(unsigned int k)
{
static int x=0;
while(1)
{
if (SW == 0) //SW代表按鈕
{
x =k++;
_delayms(50);
return(x);
}
}
}
複製代碼
希望以上兩種方式對你有幫助
作者:
if8051
時間:
2013-10-29 17:10:41
本帖最後由 if8051 於 2013-10-29 17:14 編輯
按鈕開關 按下 ----> 加 1 ----> 按鈕開關 放開
完成一週期的按鈕動作
do{
while(P1_0); // 等待按鈕開關按下
delay_ms(20); // debounce 反彈跳 20mS
}while(P1_0);
k++; // 計數器 加 1
do{
while(!P1_0); // 等待按鈕開關放開
delay_ms(20); // debounce 反彈跳 20mS
}while(!P1_0);
複製代碼
作者:
乂羽人乂
時間:
2013-10-29 22:33:38
謝謝兩位前輩
也順便問問兩位前輩
我一直覺得我的C還學得不夠精(以大學生來看)
寫程式還是要看看書才會,
不知道如果想要能夠獨當一面寫程式的話大約需要累積多少實力
還有就是我應該要怎麼精進
作者:
if8051
時間:
2013-10-30 09:36:46
巧婦難為無米之炊
工欲善其事,必先利其器!
若想真的學好 單晶片微電腦 MCU,我倒有以下之建議:
1. 選用 ATMEL AT89S52 : 8KB Flash ROM,有 ISP 功能,有 WDT Watchdog Timer 看門狗計時器 。
2. Keil C compiler 有內建的 RTOS 多工作業系統:#include <rtx51tny.h> 即可使用,允許最多 16 task 。
3. 買個 breadboard 和 ISP 下載傳輸線,練習硬體操作,才不致於隔靴搔癢,藉此累積實務經驗 。
3. 掌握 三個程式流程架構 四個跳躍指令 之精髓
三個程式流程架構
1. sequential 順序流程,這是 C 語言預設的流程,程式是由上而下依序執行 。
2. selection 選擇判斷 if ~ else switch ~ case
3. iteration 重複迴圈 for loop while loop do ~ while loop
四個跳躍指令 : goto return break continue
實際操作 多練習 錯誤中成長 假以時日 妳會成為高手 !
作者:
a37583758
時間:
2013-11-1 18:58:55
請問為什麼主題是 [問題求助] 關於C#回傳值
內容卻在問 8051...
歡迎光臨 SOGO論壇 (https://oursogo.com/)
Powered by OURSOGO.COM