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

📄 main.c

📁 9S12DT128B定时器的应用实际的例子
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */
#include "printp.h" 
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
void AD_Init(void);
  int a;
  int sige,atd_flag,hanghao,PRINT_flag,line_num,line_count;
  
  void main(void) {
  
/* int i; 	*/
    
    AD_Init();
    
  MCCTL = 0xa4;													//定时器初始化
                    

   TIOS = 0x00;
   TCTL3 = 0x02;
   TCTL4 = 0x70;
 /*  DLYCT = 0x03;   */
  
   TIE = 0x1c;
   
   TSCR1_TEN = 1;
//   TFLG1=0xff;
   sige =0;
   atd_flag=0;
   PRINT_flag=0;              
   line_num=0;
   EnableInterrupts;

  for(;;) {
            
            if(PRINT_flag==1) {
              PRINT_flag=0;
           /*  for(i=1;i<=1;i++) { */
              printp("a[atd_flag] = %d\n",a);  
              
                printp("line_count = %d\n",line_count);
               
           /*   }
             atd_flag=0;*/
            
            }        
            
          } 
  
}

void AD_Init(void)	//初始化
{
  ATD0CTL2=0xC2;  //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止
  ATD0CTL3=0x08; // 每个序列4次转换, No FIFO, Freeze模式下继续转换
  ATD0CTL4=0x85; // 8位精度, 2个时钟
   
  ATD0DIEN=0x00; // 禁止数字输入
}



interrupt void MDCU(void){								 
  MCFLG_MCZF = 1;
  ATD0CTL5=0x00;
 
}/* */
      

 interrupt void IOC3(void){
  TFLG1_C3F = 1;
  line_num+=1;
  sige+=1;
  if((sige==4)&&(line_num>25)&&(line_num<250)) {
    MCCNT = 100;
    atd_flag+=1;
    
      sige =0;
  } /* */
   
}
interrupt void IOC2(void) {
 //  PORTB=0x00;
   TFLG1_C2F = 1 ;
//  PRINT_flag=1;
 /**/ sige =0;  
  line_count=line_num;
   line_num=0; 

}


interrupt void IOC4(void){
  TFLG1_C4F = 1;
  PORTB=0x00;
   PRINT_flag=1;
  
}

interrupt void ATD0(void){
  ATD0STAT0_SCF = 1;
  a= ATD0DR0H;
  
}
   


/*
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -