?? delay_t0.c
字號:
/*----------------------------------------*-
Delay_To.c (v1.00)
------------------------------------------
Simple hardware delays based on To
-*----------------------------------------*/
#include "Main.H"
//-------------Private constants----------
//Timer preload values for use in simple(hardware) delays
//-Timers are 16-bit,manual reload('one shot')
//
//NOTE: These values are portable but timings are 'approximate'
// must be checked by hand if accurate timing is required
//
//Define Timer 0/1 reload values for ~1msc delay
//NOTE: Adjustment made to allow for function call overhead etc
#define PRELOAD01 (65536-(tWord)(OSC_FREQ/(OSC_PER_INST * 1020)))
#define PRELOAD01H (PRELOAD01/256)
#define PRELOAD01L (PRELOAD01 % 256)
/*---------------------------------------------*-
Delay_To()
Function to generate N millisecond delay (approx)
Uses Timer 0 (easily adapted to Timer 1)
-*-----------------------------------------------*/
void Delay_T0_Wait(const tWord N)
{
tWord ms;
//configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; //Clear all To bits (T1 left unchanged);
TMOD |= 0x01 ; //Set required T0 bits (T1 left unchanged);
ET0 = 0; //No interupt
//Delay value is *approximately* 1ms per loop
for (ms = 0 ;ms<N;ms++){
TH0 = PRELOAD01H;
TL0 = PRELOAD01L;
TF0 = 0;
TR0 = 1;
while(TF0 == 0);
TR0 = 0;
}
}
/*------------------------------------------------
---------END OF FILE------------------------------
-*------------------------------------------------*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -