Ⅰ PIC單片機c語言中如何喂狗
首先你要說明你用的是哪款PIC的單片機和用哪個C編譯器。
PIC有中低端的八位單片機PIC10/12/16的,高端的八位單片機PIC18系列,1十六位單片機PIC24和dsPIC,還有一個PIC32是三十二位的。上述的都可以通過調用宏指令CLRWDT();來實現喂狗。
但他們的宏指令的聲明一般都是在各自的頭文件中,比如根據他們的數據手冊PIC10/12/16系列的宏指令聲明都在htc.h文件中,pic.h里我還沒試過。
而PIC18我用過的是MPLAB C18編譯器,其聲明宏指令的頭文件是這個晶元的名稱,如PIC18F4680.h。
而PIC24我用的是MPLAB C30編譯器我是直接根據數據手冊的要求在C文件里定義宏的:
#define ClrWdt() {__asm__ volatile ("clrwdt");}
而前面的八位單片機的C語言也可以用下列嵌入匯編的方法: asm("CLRWDT");
Ⅱ 單片機指令周期的計算
計算方法:PIC單片機的每四個時鍾周期為一個內部指令周期,例如:8MHz的晶振,則內部指令周期為1/(8/4)= 0.5 uS
實例一:35us, 8MHz的晶振, 8位定時器, 分頻比1/2 , 初值 E4
實例二:156.25us , 32768Hz的晶振, 8位定時器, 分頻比1/32 , 初值 FC
計算方法一: 35 = =(256-初值)*分頻*4/晶振 + 14/分頻 =(256-初值)+14/2
計算方法二:0.015625 =(256-初值)*分頻*4/晶振 = (256-初值)*32*4/32768
特別注意:分頻比1-8 需要加上一個14/分頻
指令周期是指令周期執行某一條指令所消耗的時間,它等於機器周期的整數倍。傳統的80C51單片機的指令周期大多數是單周期指令,也就是指令周期=機器周期,少部分是雙周期指令。
(2)單片機pic喂狗時間計算擴展閱讀
在MCS-51系統中,有單周期指令,雙周期指令。四周期指令只有乘,除兩條指令。指令的運算速度和它的機器周期直接相關,機器周期數較小則執行速度快。
在編程時要注意選用具有同樣功能而機器周期數小的指令。每一條指令的執行都可以包括取指和執行兩個階段。在取指階段,CPU從內部或者外部ROM中取出指令操作碼及操作數,然後再執行這條指令。
在8051指令系統中,根據各種操作的繁簡程度,其指令可由單位元組,雙位元組和三位元組組成。從機器執行指令的速度看,單位元組和雙位元組指令都可能是單周期或雙周期,
而三位元組指令都是雙周期,只有乘,除指令佔四個周期,一條指令的位元組數表徵這條指令在存儲器中所佔空間大小,而周期數表徵運行這條指令所花時間長短,即運行速度。