📄 main.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 + -