📄 main_for_hardwaredelay.c
字号:
/*-------------------------------------------------------------------*-
Main.C(v1.00)
--------------------------------------------------------------------
Testing hardware timeouts
-*-----------------------------------------------------------------*/
#include "Main.H"
#include "TimeoutH_For_HardWareDelay.H"
//Function prototypes
void Test_50micros(void);
void Test_500micros(void);
void Test_01ms(void);
void Test_05ms(void);
void Test_10ms(void);
void Test_15ms(void);
void Test_20ms(void);
void Test_50ms(void);
//TIMEOUT code variable & TIMEOUT code(dummy here)
#define TIMEOUT 0xff
tByte Error_code_G;
/*-------------------------------------------------------------------*/
void main(void){
while(1){
Test_50micros();
Test_500micros();
Test_01ms();
Test_05ms();
Test_10ms();
Test_15ms();
Test_20ms();
Test_50ms();
}
}
/*-----------------------------------------------------------------*/
void Test_50micros(void){
//Configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; // Clear all T0 bits , T1 left unchanged
TMOD |= 0x01 ; // Set required T0 bits ,T1 left unchanged
ET0 = 0 ; //No interupts
//Simple timeout feature - approx 50 us
TH0 = T_50micros_H;
TL0 = T_50micros_L;
TF0 = 0 ; //Clear flag
TR0 = 1 ; //Start timer
while (!TF0);
TR0 = 0;
//Normally need to report timeout TIMEOUTs
//This test is demo purposes here
if(TF0 == 1){
//Operation timed out
Error_code_G= TIMEOUT;
}
}
/*-----------------------------------------------------------------*/
void Test_500micros(void){
//Configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; // Clear all T0 bits , T1 left unchanged
TMOD |= 0x01 ; // Set required T0 bits ,T1 left unchanged
ET0 = 0 ; //No interupts
//Simple timeout feature - approx 50 us
TH0 = T_500micros_H ;
TL0 = T_500micros_L ;
TF0 = 0 ; //Clear flag
TR0 = 1 ; //Start timer
while (!TF0);
TR0 = 0;
//Normally need to report timeout TIMEOUTs
//This test is demo purposes here
if(TF0 == 1){
//Operation timed out
Error_code_G= TIMEOUT;
}
}
/*-----------------------------------------------------------------*/
void Test_01ms(void){
//Configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; // Clear all T0 bits , T1 left unchanged
TMOD |= 0x01 ; // Set required T0 bits ,T1 left unchanged
ET0 = 0 ; //No interupts
//Simple timeout feature - approx 50 us
TH0 = T_01ms_H ;
TL0 = T_01ms_L ;
TF0 = 0 ; //Clear flag
TR0 = 1 ; //Start timer
while (!TF0);
TR0 = 0;
//Normally need to report timeout TIMEOUTs
//This test is demo purposes here
if(TF0 == 1){
//Operation timed out
Error_code_G= TIMEOUT;
}
}
/*-----------------------------------------------------------------*/
void Test_05ms(void){
//Configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; // Clear all T0 bits , T1 left unchanged
TMOD |= 0x01 ; // Set required T0 bits ,T1 left unchanged
ET0 = 0 ; //No interupts
//Simple timeout feature - approx 50 us
TH0 = T_05ms_H ;
TL0 = T_05ms_L ;
TF0 = 0 ; //Clear flag
TR0 = 1 ; //Start timer
while (!TF0);
TR0 = 0;
//Normally need to report timeout TIMEOUTs
//This test is demo purposes here
if(TF0 == 1){
//Operation timed out
Error_code_G= TIMEOUT;
}
}
/*-----------------------------------------------------------------*/
void Test_10ms(void){
//Configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; // Clear all T0 bits , T1 left unchanged
TMOD |= 0x01 ; // Set required T0 bits ,T1 left unchanged
ET0 = 0 ; //No interupts
//Simple timeout feature - approx 50 us
TH0 = T_10ms_H ;
TL0 = T_10ms_L ;
TF0 = 0 ; //Clear flag
TR0 = 1 ; //Start timer
while (!TF0);
TR0 = 0;
//Normally need to report timeout TIMEOUTs
//This test is demo purposes here
if(TF0 == 1){
//Operation timed out
Error_code_G= TIMEOUT;
}
}
/*-----------------------------------------------------------------*/
void Test_15ms(void){
//Configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; // Clear all T0 bits , T1 left unchanged
TMOD |= 0x01 ; // Set required T0 bits ,T1 left unchanged
ET0 = 0 ; //No interupts
//Simple timeout feature - approx 50 us
TH0 = T_15ms_H ;
TL0 = T_15ms_L ;
TF0 = 0 ; //Clear flag
TR0 = 1 ; //Start timer
while (!TF0);
TR0 = 0;
//Normally need to report timeout TIMEOUTs
//This test is demo purposes here
if(TF0 == 1){
//Operation timed out
Error_code_G= TIMEOUT;
}
}
/*-----------------------------------------------------------------*/
void Test_20ms(void){
//Configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; // Clear all T0 bits , T1 left unchanged
TMOD |= 0x01 ; // Set required T0 bits ,T1 left unchanged
ET0 = 0 ; //No interupts
//Simple timeout feature - approx 50 us
TH0 = T_20ms_H ;
TL0 = T_20ms_L ;
TF0 = 0 ; //Clear flag
TR0 = 1 ; //Start timer
while (!TF0);
TR0 = 0;
//Normally need to report timeout TIMEOUTs
//This test is demo purposes here
if(TF0 == 1){
//Operation timed out
Error_code_G= TIMEOUT;
}
}
/*-----------------------------------------------------------------*/
void Test_50ms(void){
//Configure Timer 0 as a 16-bit timer
TMOD &= 0xF0 ; // Clear all T0 bits , T1 left unchanged
TMOD |= 0x01 ; // Set required T0 bits ,T1 left unchanged
ET0 = 0 ; //No interupts
//Simple timeout feature - approx 50 us
TH0 = T_50ms_H ;
TL0 = T_50ms_L ;
TF0 = 0 ; //Clear flag
TR0 = 1 ; //Start timer
while (!TF0);
TR0 = 0;
//Normally need to report timeout TIMEOUTs
//This test is demo purposes here
if(TF0 == 1){
//Operation timed out
Error_code_G= TIMEOUT;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -