📄 project_1.c
字号:
/** ###################################################################
** Filename : Project_1.C
** Project : Project_1
** Processor : MC9S08QD4CSC
** Version : Driver 01.11
** Compiler : CodeWarrior HCS08 C Compiler
** Date/Time : 2008-2-18, 14:35
** Abstract :
** Main module.
** Here is to be placed user's code.
** Settings :
** Contents :
** No public methods
**
** (c) Copyright UNIS, spol. s r.o. 1997-2006
** UNIS, spol. s r.o.
** Jundrovska 33
** 624 00 Brno
** Czech Republic
** http : www.processorexpert.com
** mail : info@processorexpert.com
** ###################################################################*/
/* MODULE Project_1 */
/* Including used modules for compiling procedure */
#include "Cpu.h"
#include "Events.h"
#include "TI1.h"
#include "WDog1.h"
#include "AD1.h"
#include "Bit1.h"
#include "Bit2.h"
/* Include shared modules, which are used for whole project */
#include "PE_Types.h"
#include "PE_Error.h"
#include "PE_Const.h"
#include "IO_Map.h"
/**************************************************************************
const unsigned char CoolAD = 0x7F; //06年9月19日:由0x7C改回原值0x7F
//const unsigned char HotAD = 0x81; //06年9月19日:由0x7F改回原值0x81
const unsigned char HotAD = 0x82; //07年1月20日:改至0x82
//const unsigned char WarmAD = 0x3F; //for daewoo
const unsigned char WarnAD = 0x10;
**************************************************************************/
const byte HotWarnAD = 0x4E; //220度报警设定 07-12-07
//const unsigned char HotWarnDisableAD = 0x7F;
//const byte WarmWarnAD = 0x82; //90度报警设定 07-12-07
const byte WarmWarnAD = 0x3F; //130度报警设定 08-02-21
/*实验测得的130度AD值,按实际需要设定报警点*/
//const unsigned char WarmWarnDisableAD = 0x49;
const byte ShortCircuitAD = 0x10; //短路判定 07-12-07
/* 为防止探头由于短路造成的误报警,程序初始时,检测探头是否处于
短路状态(假设初始上电,探头温度小于报警温度),正常工作时,如果
探头温度有突变(上一次没有报警,这一次探头电阻很小),那么也认为探头短路.为避免探头短路后,430欧姆电阻
由于电流过大,容易烧毁,所以将其变更为1K欧姆电阻 李亮 07年11月23日
*/
void main(void)
{
/* Write your local variable definition here */
byte ADValue1, ADValue2;
byte ADValue3, ADValue4;
byte Disable1, Disable2;
byte Disable3, Disable4;
byte OldValue1, OldValue2;
byte OldValue3, OldValue4;
byte WarnEnable;
//byte ErrorFlag;//防止函数错误,返回值暂存处
byte i;
/*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
PE_low_level_init();
/*** End of Processor Expert internal initialization. ***/
/* Write your code here */
/* For example: for(;;) { } */
//为防止由于传感器短路引起的报警,刚上电将读取各个
//探头的AD数值,如果短路将屏蔽该探头.
Bit1_PutVal(1);//报警端口上电初始化为高输出
for(i = 1; i < 200; i++){
Cpu_Delay100US(50);
WDog1_Clear();
}
OldValue1 = 0xFF;
OldValue2 = 0xFF;
OldValue3 = 0xFF;
OldValue4 = 0xFF;
Disable1 = 0;
Disable2 = 0;
Disable3 = 0;
Disable4 = 0;
for(;;)
{
WDog1_Clear(); /* feeds the dog */
Cpu_Delay100US(50);
do{
;
}while(AD1_MeasureChan(1,0) != 0) ;
do{
;
}while(AD1_GetChanValue8(0,&ADValue1) != 0) ;
//ErrorFlag=AD1_MeasureChan(1,0);
//ErrorFlag=AD1_GetChanValue8(0,&ADValue1);
do{
;
}while(AD1_MeasureChan(1,1) != 0) ;
do{
;
}while(AD1_GetChanValue8(1,&ADValue2) != 0) ;
//ErrorFlag=AD1_MeasureChan(1,1);
//ErrorFlag=AD1_GetChanValue8(1,&ADValue2);
do{
;
}while(AD1_MeasureChan(1,2) != 0) ;
do{
;
}while(AD1_GetChanValue8(2,&ADValue3) != 0) ;
//ErrorFlag=AD1_MeasureChan(1,2);
//ErrorFlag=AD1_GetChanValue8(2,&ADValue3);
do{
;
}while(AD1_MeasureChan(1,3) != 0) ;
do{
;
}while(AD1_GetChanValue8(3,&ADValue4) != 0) ;
//ErrorFlag=AD1_MeasureChan(1,3);
//ErrorFlag=AD1_GetChanValue8(3,&ADValue4);
/*
if(ADValue1 < 0x16){
Bit1_PutVal(0);
}else{
Bit1_PutVal(1);
}
*/
WarnEnable = 0;
if(Disable1 == 0){
if(ADValue3 < ShortCircuitAD && OldValue1 > HotWarnAD)
{
Disable1 = 1;
}else if(ADValue3 < HotWarnAD)
{
WarnEnable = 1;
}
}
if(Disable2 == 0){
if(ADValue4 < ShortCircuitAD && OldValue2 > HotWarnAD)
{
Disable2 = 1;
}else if(ADValue4 < HotWarnAD)
{
WarnEnable = 1;
}
}
if(Disable3 == 0){
if(ADValue1 < ShortCircuitAD && OldValue3 > WarmWarnAD)
{
Disable3 = 1;
}else if(ADValue1 < WarmWarnAD)
{
WarnEnable = 1;
}
}
if(Disable4 == 0){
if(ADValue2 < ShortCircuitAD && OldValue4 > WarmWarnAD)
{
Disable4 = 1;
}else if(ADValue2 < WarmWarnAD)
{
WarnEnable = 1;
}
}
if(WarnEnable == 1){
Bit1_PutVal(0);
}else{
Bit1_PutVal(1);
}
OldValue1 = ADValue1;
OldValue2 = ADValue2;
OldValue3 = ADValue3;
OldValue4 = ADValue4;
}
/*** Don't write any code pass this line, or it will be deleted during code generation. ***/
/*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/
for(;;){}
/*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/
/* END Project_1 */
/*
** ###################################################################
**
** This file was created by UNIS Processor Expert 3.00 [03.89]
** for the Freescale HCS08 series of microcontrollers.
**
** ###################################################################
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -