📄 main.c
字号:
/*========================================================
ProjectName: ATD_TEST_V
Description: a ATD test program for 9S12XS128,CW4.7
Author : lucev
Date : 09.2.14
Notes : 2.15 改为均值显示
==========================================================*/
#include <hidef.h> /* common defines and macros */
#include <MC9S12XS128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
void ATD_Init( void ); //ATD初始化函数
void DelayV( unsigned int x ); //延时控制
void main(void)
{
DDRB = 0xFF; //B口输出
PORTB = 0xFF; //灭灯
ATD_Init(); //初始化
while( 1 )
{
// 显示均值
while( !ATD0STAT0_SCF ); //等待一个序列结束
PORTB = ~( ( byte ) (( ATD0DR0 +
ATD0DR1 +
ATD0DR2 +
ATD0DR3 ) / 4 ) );//显示转换结果【序列均值】
DelayV( 10 ); //延时,看的清楚些
// 显示一次的结果
// while( ATD0STAT2_CCF0 == 0 ); //等待,直到一次转换结束
// PORTB = ~ ( byte ) ATD0DR0; //显示转换结果
// DelayV( 10 ); //这样看的清楚些
}
}
void ATD_Init( void )
{
ATD0CTL1 = 0x00; //8位精度,不放电
ATD0CTL2 = 0x40; //快速清除标志位,禁止外部触发,不使能中断
ATD0CTL3 = 0xA2; //右对齐,每序列4次转换,不用FIFO,进入FreezeMode完成当前转换
ATD0CTL4 = 0x03; //采样用4个ATD周期,F(ATD)=1MHz[bus clock为8MHz]
ATD0CTL5 = 0x20; //scan模式,单通道,通道0
ATD0DIEN = 0x00; //禁止数字输入
}
void DelayV( unsigned int x )
{
unsigned int i,j;
for( i=0;i<=x;i++ )
for( j=0;j<=10000;j++ )
;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -