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

📄 main.c

📁 飞 思 卡 尔 s19 简单 a d 中断
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"




  word  AD_wData[8]=0;
void AD0_Init(void)	//AD初始化
{
     //控制寄存器2:    上电,标志位快速清零,开中断
     ATD0CTL2  = (ATD0CTL2_ADPU_MASK|ATD0CTL2_AFFC_MASK|ATD0CTL2_ASCIE_MASK); 
     //控制寄存器3:转换序列长度为3  //FIFO模式
     ATD0CTL3  = (ATD0CTL3_S8C_MASK);//|ATD0CTL3_S1C_MASK);//|ATD0CTL3_FIFO_MASK);
	 //控制寄存器4:                  AD_CLK(0.5M~2M)=Bus_CLK/(2/PR+1)  24M/2/(7+1)=1.5M
     //ATD0CTL4  = (ATD0CTL4_SRES8_MASK|ATD0CTL4_PRS2|ATD0CTL4_PRS1_MASK|ATD0CTL4_PRS0_MASK);
     ATD0CTL4  = (ATD0CTL4_PRS2|ATD0CTL4_PRS1_MASK|ATD0CTL4_PRS0_MASK);

	 //控制寄存器5:
     ATD0CTL5  = (ATD0CTL5_DJM_MASK|ATD0CTL5_SCAN_MASK|ATD0CTL5_MULT_MASK);
	
     ATD0DIEN=0x00;   // 禁止数字输入缓冲
}

      void interrupt 22 Int_AD0(void)
{
  AD_wData[0] = ATD0DR0;   //将结果寄存器中的值存放到数组中
  AD_wData[1] =ATD0DR1;   //将结果寄存器中的值存放到数组中
  AD_wData[2] =ATD0DR2;   //将结果寄存器中的值存放到数组中
  AD_wData[3] = ATD0DR3;
  AD_wData[4] = ATD0DR4;
  AD_wData[5] = ATD0DR5;
  AD_wData[6] = ATD0DR6;
  AD_wData[7] =ATD0DR7;  
} 


void main(void) {
 AD0_Init() ;
 DDRB=0XFF;
    PORTB=0XFF;
  /* put your own code here */
  EnableInterrupts;

  for(;;) { 
  int i ;
  for(i=0;i<8;i++){
  if (AD_wData[i]>80) PORTB=(char) AD_wData[i];
  }
  
  
  } /* wait forever */
  /* please make sure that you never leave this function */
}

⌨️ 快捷键说明

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