當前位置:首頁 » 編程語言 » 復位c語言

復位c語言

發布時間: 2023-01-30 12:17:01

c語言復位的作用

把電路初始化。
單片機的置位和復位,都是為了把電路初始化到一個確定的狀態。
單片機復位電路作用是把一個例如狀態機初始化到空狀態,而在單片機內部,復位的時候單片機是把一些寄存器以及存儲設備裝入廠商預設的一個值。

㈡ C語言 指針初始化和復位的矛盾

你應該堅持和明確一個原則,誰創建的誰釋放。創建intList並沒有創建list。為了放心起見,可以在intList初始化後,馬上讓intList->list=NULL.
其他地方創建了int數組並把首地址賦給它後,它自然不再為NULL.
最後在釋放的時候,判斷
if(intList->list)
{
delete[] intList->list;
intList->list=NULL;
}
====
我應該了解你的意思了.
一個做初始化一個做復位這個其實很常見了.指針初始化為0,以後復位都以此判斷。
直接intList il,其中的list地址是0xcccccccc
通過new或者malloc出來的,list地址是0xcdcdcdcd
他們都足夠大,大到超出了程序的用戶地址空間.也許可以從這里來判斷.

㈢ 單片機C語言怎麼編譯復位語句,我打開藍牙可以執行,當a=0x06後,執行循跡,然後沒法跳出while...

void xunji()
{
car();
while(1)
{};//程序死在這里了
}

㈣ 51單片機如何實現軟體復位系統(C語言),謝謝

單片機實現軟體復位(軟復位)的方法及討論

單片機實現軟體復位(軟復位)的方法及討論

(天堂雨林博客blog.sina.com.cn/acer收集整理)

單片機軟復位有什麼好的方法?如從機收到復位命令(軟體命令),程序怎麼使機器復位?雖然要使軟體始終處於可控狀態,最好不要用"復位",因為復位是純硬體過程,軟體是不可控的.但是我們還是要討論方法,一般流傳的方法如下:

1、放狗;

2、((void(code *)(void))0x0000)();

3、用單片機一個引腳控制點一下RSTRST;

4、用單片機一個引腳控制重新加電;

5、用單片機自帶的軟體復位指令或內狗指令;

6、goto大法;

天堂雨林博客對以上方法的意見:

方法1:「放狗」是單片機軟復位的最好辦法,也基本上是唯一的一個辦法。但並不是所有單片機都具備看門狗的功能,也不是一個萬全之策。

辦法2:這不是復位,只是把程序轉到地址0去執行,不如用一個JMP更直接。目前可能極少數單片機或者用戶已經自行添加Boot load時用戶程序的程序開始地址並不為0x0000,所以需要查找這些特定單片機的啟動地址。
在keil C51下面可以這樣實現:
void soft_reset(void)
{
((void (code *) (void)) 0x0000) ();
}
在需要軟體復位的地方使用語句:
soft_reset();
一般可實現軟體復位。

辦法3:用軟體實現的硬復位。需要犧牲一個單片機引腳,且增加了單片機外部電路構造的復雜性,很不可取。

辦法4:類似辦法3,同樣需要犧牲一個單片機引腳,且增加了單片機外部電路構造的復雜性,很不可取。但不能把它單單地當成是復位,應該叫上電復位。

辦法5:Atmel 89C不帶內狗,S的有內狗,只是一條指令就行。如STC的單片機有軟體復位指令,即ISP_CONTR,地址在0E7H 單元(即str ISP_CONTR=0xE7),MOV ISP_CONTR,#00100000B(C語言為ISP_CONTR=0x20),內狗也是一條指令MOV WDT_CONTR,#00111100B!
STC 51系列單片機Datasheet中指出:傳統的8051 單片機由於硬體上未支持此功能,用戶必須用軟體模擬實現,實現起來較麻煩。現STC 新推出的增強型8051 根據客戶要求增加了ISP_CONTR 特殊功能寄存器,實現了此功能。用戶只需簡單的控制ISP_CONTR 特殊功能寄存器的其中兩位 SWBS / SWRST 就可以系統復位了。

辦法6:程序從頭(上電復位處)開始運行,且只有一個循環這種情況,當然可以用goto,如在main()的開頭設一個start:,在程序的唯一循環中設定一個條件,然後goto命令。但需要注意,如果是在中斷常式里,那麼中斷掛號寄存器仍置位,同級中斷不能執行。所以必須先使中斷掛號寄存器清零,EA = 0。只有RETI指令可以使中斷掛號寄存器清零。51單片機有兩級中斷優先順序,所以需要執行兩次RETI指令。這用匯編是很簡單的事,而C則比較難以實現。但是,goto命令盡量不要用,因為goto會到處亂竄,而且goto不能跑到函數外面去執行一個命令。

最後總結如下:最好使用辦法5最為簡潔方便,使用辦法2實現也不失為一種好方法

㈤ c語言獨立按鍵控製程序復位

第一,直接使用硬體來復位,將原本要接到P3.3的電平接到硬體復位上,當然需要一定的設計
第二,還是硬體,直接將此電平接到看門狗電路上
第三,軟體,前提是你的單片機支持軟體復位(包括直接復位和內置的看門狗)

㈥ C語言中kbhit()函數怎麼復位

函數簡介
函數名:kbhit()(VC++6.0下為_kbhit())
功 能及返回值: 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0。當調用kbhit()函數檢測後,它的狀態會自動復位。即重新進入檢測狀態而不會保留上一次的檢測結果的。
用 法:int kbhit(void);
包含頭文件: include <conio.h>

程序示例
下面的代碼,如果沒有鍵盤輸入程序一直輸出A,直到用戶按Esc結束輸出H改為輸出B,第二次按Esc時,結束輸出B,並輸出A和B的個數。這個程序說明kbhit()可以自動復位,重復使用。
#include<stdio.h>
#include<conio.h>
int main(void)
{char ch;
long a=0,b=0;
while(1)
{printf("A");a++;
if(kbhit())
{ch=getch();
if(27==ch)break;
}
}
while(1)
{printf("B");b++;
if(kbhit())
{ch=getch();
if(27==ch)break;
}
}
printf("\nA=%ld B=%ld\n",a,b);
system("pause");
return 0;
}

㈦ C語言中什麼叫指針復位

指針所指的地址,經過使用後改變到新的地址了,,,,,那麼,讓指針重新指向開始的地址,是復位

~~~~~

㈧ 如何使用單片機C語言實現復位

可以使用下面的程序跳到0000H實現軟復位,下面的程序實際上是一個函數指針,指針指向了0000H地址。
((void
(code
*)
(void))
0x0000)
();
下面的例子將實現軟體自復位void
reset
(void)
{
((void
(code
*)
(void))
0x0000)
();
}
void
main
(void)
{
reset
();
}
你可能注意到以上的軟復位程序並不能清除8051的中斷系統和某些8051的外圍設備,當您在中斷程序中調用上面的軟體復位程序後,中斷將再不能觸發。因此,以上的軟復位程序不能在中斷子程序中調用。
下面的小段匯編函數可以在中斷程序或主程序中調用,該函數將0x0000壓棧,然後通過「RETI」出棧,這將清除中斷環境並讓程序從0000H重新開始運行。
?PR?RESET
SEGMENT
CODE
RSEG
?PR?RESET
;
C
prototype:
void
reset
(void);
PUBLIC
reset
reset:
POP
ACC
;
pop
return
address
POP
ACC
CLR
A
;
push
0
as
new
PUSH
ACC
;
return
address
to
stack
PUSH
ACC
RETI
;
execute
return
of
interrupt
END
以上程序在選擇bank
0寄存器組時工作良好,假如選擇的不是bank0寄存器組,那麼可能無法獲得預料的結果。你應該在以上的程序或啟動代碼中加上「MOV
PSW,
#0」來選擇bank
0寄存器組。
以上文章由龍嘯九天翻譯自KEIL
FAQ,可能有疏漏,歡迎提出。

㈨ ARM9中斷中(C語言)如何實現復位功能,而不是返回中斷前的狀態

1,有些ARM處理器有復位寄存器,只要在中斷函數里向復位寄存器寫規定的數值就會產生復位。
2,有些ARM處理器帶看門狗WatchDog,只要在中斷函數里啟動軟體狗,並且進入死循環不喂狗,看門狗會產生復位信號。
3,上述硬體都沒有ARM處理器,讓硬體工程師加一個軟體復位電路,可以用一個GPIO引腳觸發復位的。然後在中斷函數里改變GPIO引腳狀態觸發復位。

㈩ 基於單片機C語言中復位的函數

一般是不可能的,你換個思路想,怎樣可以把這個問題解決,而不要去想怎樣復位。你應該是某些變數值位了,沒有清零吧,試一下把寫法稍微換一下。據我所知是沒有軟體復位的。給你一個思路吧,你可以吧八路都寫到中斷裡面,進中斷後在判斷是哪一路按下去了,這樣是不會死鎖的,又或者你另外再加一個鍵復位,不過這個不是重啟鍵哦,是把變數初始化的鍵

熱點內容
解壓瀏覽器 發布:2024-04-19 15:39:22 瀏覽:573
pythonutfgbk 發布:2024-04-19 15:32:20 瀏覽:219
騰訊雲伺服器搭建網站打不開 發布:2024-04-19 15:32:15 瀏覽:965
光遇腳本輔助下載免費ios 發布:2024-04-19 15:22:11 瀏覽:241
表格VB腳本 發布:2024-04-19 15:13:07 瀏覽:778
python生成器表達式 發布:2024-04-19 15:12:10 瀏覽:745
獲取文件夾文件名 發布:2024-04-19 14:45:51 瀏覽:247
嗶咔本地緩存怎麼看 發布:2024-04-19 14:36:00 瀏覽:105
linux的alarm 發布:2024-04-19 14:26:22 瀏覽:333
松江麻將源碼 發布:2024-04-19 14:06:06 瀏覽:958