我最近開始使用C和Im試圖弄清楚如何爲 PIC16F884做一個10ms延遲。從數據表中的公式我已經成功地創建了以下內容:使用20MHz晶體(初學者級別)在C中延遲
FOSC = 20MHz的和Toscx4 = 200ns的
如果我把一個預置100 => T = 100x200ns = 20US,並得到一個10毫秒延遲
爲10ms/20US = 500
將在C下面的代碼給我什麼進出口尋找(10ms的延遲)?假設我有所有的啓動代碼和變量。
void interrupt ISR(void){
if(TMR0IF){
TMR0IF=0;
counter++;
}
if(counter==100){
delay++;
counter=0;
}
}
int main(void){
TMR0=155;
if(delay>4){
//any code
delay=0;
}
}
可能是一個壞榜樣,但希望你明白
如果沒有看門狗定時器,您可以嘗試執行1秒(例如)延遲來自己測試。如果你的1秒延遲是準確的,你應該能夠將你的計數器減100,以延遲10毫秒。 –