⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_for_hardwaredelay.c

📁 CODE for embedded C ,hand coding version
💻 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 + -