?? display.c
字號:
/** \file
* ESP430CE1 Application Program Example
* Display Data
*
* This file displays the data on the LCD display
*
* \author Stefan Schauer
* \date 07/28/2003
*/
//====================================================================
#include "device.h"
#include "fet4xx_rtclcd.h"
#include "display.h"
#include "emeter.h"
#include "parameter.h"
#ifdef withDisplay
// ************************************************************
// Definitions & Declarations
// ************************************************************
enum {
display_startup,
display_off,
display_clock,
display_date,
display_volt,
display_current,
display_vpeak,
display_ipeak,
display_freq,
display_cosphi,
// display_ch1,
// display_ch2,
// display_ch3,
display_temp,
display_power,
display_energy,
display_last
};
const char * txt_idle = "IDLE";
const char * txt_display[]= {
"",
"OFF",
"TIME",
"DATE",
"VOLT",
"CURR",
"VPEAK",
"IPEAK",
"FREQ",
"COSPHI",
"TEMP",
"POWER",
"ENERGY",
"OFF",
};
unsigned char Display_Mode = display_startup;
unsigned char Display_Hold = 0;
// ************************************************************
// functions
// ************************************************************
void DisplayIDLE(void)
{
LCDtext ((unsigned char *) txt_idle, 6, 6);
}
void DisplayNextData(void)
{
LCD_ON;
Display_Mode ++;
Display_Hold = 2;
LCDtext ((unsigned char *) txt_display[Display_Mode], 6, 6);
}
void DisplayData(void)
{
int svalue;
unsigned int value;
unsigned long lvalue;
if (Display_Hold > 0)
{
Display_Hold--;
}
else
{
if (Display_Mode > 1) LCDM1 = (unsigned char) * ((unsigned char*)(TLCD_Tab + Display_Mode));
switch (Display_Mode)
{
case display_startup:
//for (i=0; i <= sbanner + 5; )
{
//LPM0;
static unsigned char i = 0;
if (i < 6)
{ LCDtext ((unsigned char *) &banner[0], i + 1, 6); }
else
{ LCDtext ((unsigned char *) &banner[i - 5], 6, 6); }
i++;
if (i > sbanner + 5) Display_Mode = display_clock;
}
break;
case display_off:
Display_Mode = display_off;
LCD_OFF;
break;
case display_clock:
Dis_Clock();
break;
case display_date:
Dis_Date();
break;
case display_volt:
lvalue = ((unsigned long) ((V1RMS) * (s_parameters.VRatio*1000))/1000);
LCDdecu32(lvalue, 7, 7, 3);
break;
case display_current:
lvalue = ((unsigned long) (IRMS_HI * s_parameters.IRatio*1000))/1000;
LCDdecu32(lvalue, 7, 7, 3);
break;
case display_vpeak:
lvalue = ((unsigned long) ((VPEAK) * (s_parameters.VRatio*1000))/1000);
LCDdecu32(lvalue, 7, 7, 3);
break;
case display_ipeak:
lvalue = ((unsigned long) (IPEAK * s_parameters.IRatio*1000))/1000;
LCDdecu32(lvalue, 7, 7, 3);
break;
case display_freq:
lvalue = (unsigned long)((float)(1000/((float)savedRET[22])/((long)256 * (long)4096)));
LCDdecu32(lvalue, 7, 7, 3);
break;
case display_cosphi:
value = (unsigned int)((((unsigned long)POWERFCT*1000)/POW_2_14));
((signed char)CAPIND < 0) ? (svalue = -(signed int)value) : (svalue = value);
LCDdec16(svalue, 5, 7, 3);
break;
/* case display_ch1:
LCDdecu16(wfs1, 5, 7, 0);
break;
case display_ch2:
LCDdecu16(wfs2, 5, 7, 0);
break;
case display_ch3:
LCDdecu16(wfs3, 5, 7, 0);
break; */
case display_temp:
lvalue = (unsigned long) (((unsigned long)temperature * (TempGain*100)) - (TempOffset*100));
LCDdecu32(lvalue, 4, 7, 2); // Temperature (degree)
break;
case display_power:
lvalue = (unsigned long)((float) energy.l * (float)(s_parameters.EnergyRatio)/(1000000));
LCDdecu32(lvalue, 7, 7, 3); // Active Power (kW);
break;
case display_energy:
lvalue = (unsigned long)((float) total_energy * (float)(s_parameters.EnergyRatio)/((float)1000000*(float)3600));
LCDdecu32(lvalue, 7, 7, 3); // Active Energy1 (kWh):
break;
case display_last:
default:
Display_Mode = display_off;
SetupLCD();
break;
}
}
}
#endif // withDisplay
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -