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

📄 ad.c

📁 AirConditioner project
💻 C
字号:
/*  INCLUDE  */
#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908GZ60.h> /* include peripheral declarations */
#include "COMMON.h"
#include "AD.h"
#include "PROCESS.h"

/* Global Variables */
extern UINT8 ad_data[4];
extern UINT8 ad_channel[4];
extern UINT8 process_flag;
extern UINT8 adch;
UINT8 ad_data_temp[4];

/******************************************************************************
 * Function:        UINT8 AD_Sample(UINT8)
 *
 * Description:     AD Sample 
 *                  
 *
 * Returns:         Digitel
 *
 * Notes:           
 *
 ******************************************************************************/

UINT8 AD_Sample(UINT8 AD_Channel) {

   ADSCR_ADCH  =  AD_Channel;                      //AD Channel selected
                                                  
   while (ADSCR_COCO == 0);                        //Wait until Convert complete
   	    
   return (ADRL);
}

/******************************************************************************
 * Function:        interrupt Sample_Data(void)
 *
 * Description:     
 *                  
 *
 * Returns:         none
 *
 * Notes:           
 *
 ******************************************************************************/

void interrupt Sample_Data(void) {
    
    switch(adch) {
	  
		case 0:ad_data_temp[0]=ADRL;if(ad_data_temp[0]-ad_data[0]>6 || ad_data[0]-ad_data_temp[0]>6){
		                             ad_data[0]=ad_data_temp[0];
		                            }break;
		                            
		case 1:ad_data_temp[1]=ADRL;if(ad_data_temp[1]-ad_data[1]>6 || ad_data[1]-ad_data_temp[1]>6){
		                             ad_data[1]=ad_data_temp[1];
		                            }break;
		case 2:ad_data_temp[2]=ADRL;if(ad_data_temp[2]-ad_data[2]>6 || ad_data[2]-ad_data_temp[2]>6){
		                             ad_data[2]=ad_data_temp[2];
		                            }break;
		case 3:ad_data_temp[3]=ADRL;if(ad_data_temp[3]-ad_data[3]>6 || ad_data[30]-ad_data_temp[3]>6){
		                             ad_data[3]=ad_data_temp[3];
		                            }Process_Data();break;
	  
		default:break;
	  }
	  
	  adch++;
    if(adch == 4) {
	     adch=0;
	     //process_flag=1;
	     ADSCR_AIEN = 0;                    //ADC interrupt disabled
	  } else if(adch<4) {
         ADSCR_ADCH=ad_channel[adch];
	    }
	  __RESET_WATCHDOG();                            
	} 	 

⌨️ 快捷键说明

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