📄 main.c
字号:
/***************************************************************************************
*
* (c) copyright 2005,Tongji-Freescale Automobile Electronic Aligned Lab,ShangHai,China
*
* All Rights Reserved
*
*
* File Name : AD
*
* Programmer(s) : Wukai
*
* Date Created : 2005.07.16
*
* Current Revision : V1.0
*
* Modification History :
*
* Description :
*
***************************************************************************************/
#include <hidef.h> /* common defines and macros */
#include <mc9s12dp256.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"
unsigned int ad2pwm[2];
#pragma CODE_SEG DEFAULT
/*PORTS初始化程序*/
void PORTSInit(void)
{
DDRS=0xff; /*PORTS定义为输出*/
PTS=0xff; /*初始化为低*/
}
/* AD初始化程序 */
void ADInit(void)
{
ATD0CTL2=0x80; /* 选择normalAD模式 */
ATD0CTL3=0x18; /* 选择连续读2个通道 */
ATD0CTL4=0x23; /* 选择AD的clk为系统时钟8分频 */
}
/* AD转换值读取程序 */
void TMP_READ(unsigned int *p)
{
ATD0CTL5=0x90; /* 10bit模式,无符号,多通道连续读取,选择从AN00通道读起,启动转换 */
while(ATD0STAT0_SCF==0); /* 等待AD转换结束 */
ATD0STAT0_SCF=1; /* 清AD转换结束标志 */
*p=ATD0DR0; /* AN00转换值 */
*(p+1)=ATD0DR1; /* AN01转换值 */
}
void main(void)
{
/* put your own code here */
DisableInterrupts; /*关全局中断*/
ADInit();
PORTSInit();
EnableInterrupts; /*开全局中断*/
for(;;)
{
TMP_READ(ad2pwm);
if(ad2pwm[0]>=512) /*若AN00通道电压值大于(VRH-VRL)/2,led(D8)亮*/
{
PTS_PTS6=0;
}
else /*若AN00通道电压值小于(VRH-VRL)/2,led(D8)灭*/
{
PTS_PTS6=1;
}
}
/* wait forever */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -