📄 main.c
字号:
/* ****************************************************************************************************/
/* Demonstration Program for SP35 D1 */
/* ----------------------------------------------------------------------------------------------- */
/* */
/* Purpose: Customer evaluation */
/* */
/* Filename: main.c */
/* */
/* Target: SP35 */
/* */
/* Dev. Envir: Keil Software C51 V7.10 */
/* 礦ision2 V2.40 */
/* Author: SH */
/* */
/* History: 16.March 2006: First Release */
/* 22.Dec 2006: Update for D1 */
/* */
/* Status: Release V1.1 */
/* ************************************************************************************************** */
/* (C)opyright Infineon Technologies AG. All rights reserved. */
/* ****************************************************************************************************/
/**********************************************************************************
Includes
***********************************************************************************/
#include <stdio.h>
#include <ctype.h>
#include "Reg_SP35.h"
#include "SP35_ROMLibrary.h"
#include "SP35_DevLib.h"
/**********************************************************************************
Defines
***********************************************************************************/
typedef idata struct ID_Struct
{
unsigned long ID;
unsigned char ProdCode;
} ID_Struct;
/**********************************************************************************
Function Prototypes
***********************************************************************************/
void Eval_Statusbyte(status);
/**********************************************************************************
Global Variables
***********************************************************************************/
unsigned char ID[4];
/**********************************************************************************
functions
***********************************************************************************/
/**********************************************************************************
Main Routine, executed @ every Wakeup or System- Reset
**********************************************************************************/
void main (void)
{
signed int idata measure[3];
idata ID_Struct SensorID;
unsigned char status;
RS232_Init(PP2,PP1); // Initialize Software UART
// Read Sensor ID
Read_ID(&SensorID);
printf("\r\nSensor ID: %lu",SensorID.ID);
// Read Pressure
status = Meas_Pressure(3,0,measure); // Perform 8 measurements
printf("\r\nPressure: %4d [kPa]",(measure[0]/16));
Eval_Statusbyte(status);
// Read Acceleration
status = Meas_Acceleration(3,0,measure); // Perform 8 measurements
printf("\r\nAcceleration: %4d [g ]",(measure[0])/16);
Eval_Statusbyte(status);
// Read Temperature
status = Meas_Temperature(measure);
printf("\r\nTemperature: %4d [癈 ]",(measure[0]/128));
Eval_Statusbyte(status);
// Read Supply Voltage
status = Meas_Supply_Voltage(measure);
printf("\r\nSupply Voltage: %4d [mV ]",(measure[0]/8));
Eval_Statusbyte(status);
printf("\r\n");
// Configure Interval Timer
IntervalTimerCalibration(2); // Configure for 500ms Interval Precounter
ITPR = 0x01; // Confiure for Postcounter to 1
RS232_UnInit(PP2,PP1); // UnInitialize Software UART
Powerdown(); // Enter Power Down
}
/**********************************************************************************
Evaluate Measurement Statusbyte
**********************************************************************************/
void Eval_Statusbyte(status)
{
switch(status)
{
case 0: printf(" OK!");
break;
case 1: printf(" ADC Underflow!");
break;
case 2: printf(" ADC Overflow!");
break;
case 4: printf(" Bond Wire Check failed!");
break;
case 8: printf(" Beam Integrity Check failed!");
break;
case 16: printf(" VMIN Check failed!");
break;
default: printf(" Unknown or multiple Checks failed!");
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -