1
0
forked from me/IronOS

Final round of comments for now

This commit is contained in:
Ben V. Brown
2016-09-15 21:19:47 +10:00
parent 624fbe8e3f
commit 278d29bf4c
8 changed files with 77 additions and 277 deletions

View File

@@ -22,7 +22,7 @@
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.1811524023" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross"/> <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.1811524023" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross"/>
<builder buildPath="${workspace_loc:/ts100}/Debug" id="fr.ac6.managedbuild.builder.gnu.cross.727350462" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="fr.ac6.managedbuild.builder.gnu.cross"/> <builder buildPath="${workspace_loc:/ts100}/Debug" id="fr.ac6.managedbuild.builder.gnu.cross.727350462" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="fr.ac6.managedbuild.builder.gnu.cross"/>
<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.1500724168" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler"> <tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.1500724168" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler">
<option id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.963224364" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.c.optimization.level.more" valueType="enumerated"/> <option id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.963224364" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.c.optimization.level.size" valueType="enumerated"/>
<option id="gnu.c.compiler.option.debugging.level.400507088" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/> <option id="gnu.c.compiler.option.debugging.level.400507088" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
<option id="gnu.c.compiler.option.include.paths.1436405353" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <option id="gnu.c.compiler.option.include.paths.1436405353" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/inc&quot;"/> <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/inc&quot;"/>
@@ -45,6 +45,7 @@
</option> </option>
<option id="gnu.c.compiler.option.dialect.std.1983627145" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.c11" valueType="enumerated"/> <option id="gnu.c.compiler.option.dialect.std.1983627145" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.c11" valueType="enumerated"/>
<option id="gnu.c.compiler.option.warnings.nowarn.1227270879" name="Inhibit all warnings (-w)" superClass="gnu.c.compiler.option.warnings.nowarn" useByScannerDiscovery="false" value="false" valueType="boolean"/> <option id="gnu.c.compiler.option.warnings.nowarn.1227270879" name="Inhibit all warnings (-w)" superClass="gnu.c.compiler.option.warnings.nowarn" useByScannerDiscovery="false" value="false" valueType="boolean"/>
<option id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.fdata.1556802580" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.fdata" value="true" valueType="boolean"/>
<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1635097739" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c"/> <inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1635097739" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c"/>
<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.211510996" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s"/> <inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.211510996" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s"/>
</tool> </tool>
@@ -54,6 +55,7 @@
</tool> </tool>
<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.1345459845" name="MCU GCC Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker"> <tool id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.1345459845" name="MCU GCC Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker">
<option id="gnu.c.link.option.ldflags.775824110" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-specs=nosys.specs" valueType="string"/> <option id="gnu.c.link.option.ldflags.775824110" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-specs=nosys.specs" valueType="string"/>
<option id="gnu.c.link.option.strip.448454656" name="Omit all symbol information (-s)" superClass="gnu.c.link.option.strip" value="false" valueType="boolean"/>
<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1924310651" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1924310651" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/> <additionalInput kind="additionalinput" paths="$(LIBS)"/>

View File

@@ -6,7 +6,7 @@
** Author : Auto-generated by Ac6 System Workbench ** Author : Auto-generated by Ac6 System Workbench
** **
** Abstract : Linker script for STM32F103T8Ux Device from STM32F1 series ** Abstract : Linker script for STM32F103T8Ux Device from STM32F1 series
** 20Kbytes RAM ** 20Kbytes RAM
** 64Kbytes ROM ** 64Kbytes ROM
** **
** Set heap size, stack size and stack location according ** Set heap size, stack size and stack location according
@@ -55,16 +55,16 @@ ENTRY(Reset_Handler)
/* Highest address of the user mode stack */ /* Highest address of the user mode stack */
_estack = 0x20005000; /* end of RAM */ _estack = 0x20005000; /* end of RAM */
_Min_Heap_Size = 0; /* required amount of heap */ _Min_Heap_Size = 0x200; /* required amount of heap */
_Min_Stack_Size = 0x400; /* required amount of stack */ _Min_Stack_Size = 0x400; /* required amount of stack */
/* Memories definition */ /* Memories definition */
MEMORY MEMORY
{ {
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
ROM (rx) : ORIGIN = 0x8000000, LENGTH = 64K ROM (rx) : ORIGIN = 0x08004000, LENGTH = 36K
} }
/*^ The rom is shortened as the last ~10K is used for storing the virtual USB Disk, and the offset at the beginning in the bootloader*/
/* Sections */ /* Sections */
SECTIONS SECTIONS
{ {

View File

@@ -14,7 +14,7 @@
#define M_VER 'V','0' #define M_VER 'V','0'
#define S_VER '0','1' #define S_VER '0','1'
#define OEM_TYPE "0" #define OEM_TYPE "0"
#define APP_BASE 0x0800C000 #define APP_BASE 0x0800C000/*Start address of the virtual disk*/
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
#ifdef TYPE_DS201 #ifdef TYPE_DS201

View File

@@ -1,12 +1,12 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. ********************** /********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. **********************
File Name : UI.h File Name : UI.h
Version : S100 APP Ver 2.11 Version : S100 APP Ver 2.11
Description: Description:
Author : Celery Author : Celery
Data: 2015/07/07 Data: 2015/07/07
History: History:
2015/07/07 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2015/07/07 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/ *******************************************************************************/
#ifndef _UI_H #ifndef _UI_H
#define _UI_H #define _UI_H
@@ -17,28 +17,28 @@ void Set_UpdataFlag(u32 Cont);
void APP_Init(void); void APP_Init(void);
u32 Calculation_TWork(u8 Flag); u32 Calculation_TWork(u8 Flag);
void Temp_SetProc(void); void Temp_SetProc(void);
void Display_Temp(u8 x,s16 Temp); void Display_Temp(u8 x, s16 Temp);
void Show_Notice(void); void Show_Notice(void);
void Show_Warning(void); void Show_Warning(void);
void Show_MiniTS(void); void Show_MiniTS(void);
void Show_TempDown(s16 Temp,s16 Dst_Temp); void Show_TempDown(s16 Temp, s16 Dst_Temp);
void Set_TemperatureShowFlag(u8 flag); void Set_TemperatureShowFlag(u8 flag);
s16 TemperatureShow_Change(u8 flag ,s16 Tmp); s16 TemperatureShow_Change(u8 flag, s16 Tmp);
u8 Get_TemperatureShowFlag(void); u8 Get_TemperatureShowFlag(void);
void Show_Ver(u8 ver[],u8 flag);
void Show_Triangle(u8 empty,u8 fill); void Show_Triangle(u8 empty, u8 fill);
void Shift_Char(u8* ptr,u8 pos); void Shift_Char(u8* ptr, u8 pos);
void Show_Set(void); void Show_Set(void);
void Show_OrderChar(u8* ptr,u8 num,u8 width); void Show_OrderChar(u8* ptr, u8 num, u8 width);
u8 Reverse_Bin8(u8 data); u8 Reverse_Bin8(u8 data);
void Show_ReverseChar(u8* ptr,u8 num,u8 width,u8 direction); void Show_ReverseChar(u8* ptr, u8 num, u8 width, u8 direction);
u8 Show_TempReverse(u8 num,u8 width,u8 direction); u8 Show_TempReverse(u8 num, u8 width, u8 direction);
void Show_HeatingIcon(u32 ht_flag,u16 active); void Show_HeatingIcon(u32 ht_flag, u16 active);
void Display_Str(u8 x, char* str); void Display_Str(u8 x, char* str);
void Display_Str10(u8 x, char* str); void Display_Str10(u8 x, char* str);
void Clear_Pervious(u16 data); void Clear_Pervious(u16 data);
void Print_Integer(s32 data,u8 posi); void Print_Integer(s32 data, u8 posi);
u8 Roll_Num(u16 Step,u8 Flag); u8 Roll_Num(u16 Step, u8 Flag);
void OLed_Display(void); void OLed_Display(void);
void Show_Cal(u8 flag); void Show_Cal(u8 flag);
void Show_Config(void); void Show_Config(void);

View File

@@ -271,7 +271,7 @@ u8 Cal_Val(u8 str[], u8 k, u8 flag) {
} }
/******************************************************************************* /*******************************************************************************
Function:Disk_BuffInit Function:Disk_BuffInit
Description: Initializes the buffer for the virtual disk. Description: Initializes the buffer for the virtual disk. By loading from the chips flash
*******************************************************************************/ *******************************************************************************/
void Disk_BuffInit(void) { void Disk_BuffInit(void) {
memcpy(gDisk_buff, (u8*) APP_BASE, 0x2600); memcpy(gDisk_buff, (u8*) APP_BASE, 0x2600);

View File

@@ -191,20 +191,23 @@ u32 Get_SlAvg(u32 avg_data) {
} }
/******************************************************************************* /*******************************************************************************
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Get_AvgAd Function:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ADƽ<44><C6BD>ֵ Description: Read the thermocouple in the soldering iron head
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:NULL Output:Soldering Iron temperature
<20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>:ADƽ<44><C6BD>ֵ
*******************************************************************************/ *******************************************************************************/
u32 Get_AvgAd(void) { u32 Get_AvgAd(void) {
/*The head has a thermocouple inline with the heater
This is read by turning off the heater
Then read the output of the op-amp that is connected across the connections
*/
static u32 ad_sum = 0; static u32 ad_sum = 0;
static u32 max = 0, min = 5000; static u32 max = 0, min = 5000;
u32 ad_value, avg_data, slide_data; u32 ad_value, avg_data, slide_data = 0;
Set_HeatingTime(0); Set_HeatingTime(0); //set the remaining time to zero
HEAT_OFF(); HEAT_OFF(); //heater must be off
Delay_HalfMs(25); Delay_HalfMs(25); //wait for the heater to time out
gMeas_cnt = 10; gMeas_cnt = 10; //how many measurements to make
while (gMeas_cnt > 0) { while (gMeas_cnt > 0) {
ad_value = Get_AdcValue(0); //Read_Tmp(); ad_value = Get_AdcValue(0); //Read_Tmp();
@@ -214,9 +217,9 @@ u32 Get_AvgAd(void) {
if (ad_value < min) if (ad_value < min)
min = ad_value; min = ad_value;
if (gMeas_cnt == 1) { if (gMeas_cnt == 1) { //We have just taken the last reading
ad_sum = ad_sum - max - min; ad_sum = ad_sum - max - min; //remove the two outliers
avg_data = ad_sum / 8; avg_data = ad_sum / 8; //take the average
slide_data = Get_SlAvg(avg_data); slide_data = Get_SlAvg(avg_data);
ad_sum = 0; ad_sum = 0;
@@ -229,16 +232,14 @@ u32 Get_AvgAd(void) {
} }
/******************************************************************************* /*******************************************************************************
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Get_TempSlAvg Function:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>¶Ȼ<C2B6><C8BB><EFBFBD>ƽ<EFBFBD><C6BD>ֵ Description:
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:avg_data <20><><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
<20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>:<3A><><EFBFBD><EFBFBD>¶Ȼ<C2B6><C8BB><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
*******************************************************************************/ *******************************************************************************/
int Get_TempSlAvg(int avg_data) { int Get_TempSlAvg(int avg_data) {
static int sum_avg = 0; static int sum_avg = 0;
static u8 init_flag = 0; static u8 init_flag = 0;
if (init_flag == 0) { /*<2A><>һ<EFBFBD><D2BB><EFBFBD>ϵ<EFBFBD>*/ if (init_flag == 0) {
sum_avg = 8 * avg_data; sum_avg = 8 * avg_data;
init_flag = 1; init_flag = 1;
return sum_avg / 8; return sum_avg / 8;
@@ -250,14 +251,14 @@ int Get_TempSlAvg(int avg_data) {
} }
/******************************************************************************* /*******************************************************************************
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Get_SensorTmp Function:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD> Description:Reads the temperature of the on board temp sensor for calibration
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:NULL http://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf
<EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD> Output: The onboardTemp in C
*******************************************************************************/ *******************************************************************************/
int Get_SensorTmp(void) { int Get_SensorTmp(void) {
static u32 ad_sum = 0; u32 ad_sum = 0;
static u32 max = 0, min = 5000; u32 max = 0, min = 5000;
u32 ad_value, avg_data, slide_data; u32 ad_value, avg_data, slide_data;
int sensor_temp = 0; int sensor_temp = 0;
@@ -277,6 +278,7 @@ int Get_SensorTmp(void) {
//^ Removes the two outliers from the data spread //^ Removes the two outliers from the data spread
slide_data = Get_TempSlAvg(avg_data); slide_data = Get_TempSlAvg(avg_data);
sensor_temp = (250 + (3300 * slide_data / 4096) - 750); //(25 + ((10*(33*gSlide_data)/4096)-75)); sensor_temp = (250 + (3300 * slide_data / 4096) - 750); //(25 + ((10*(33*gSlide_data)/4096)-75));
//^ Convert the reading to C
ad_sum = 0; ad_sum = 0;
min = 5000; min = 5000;
max = 0; max = 0;
@@ -287,25 +289,23 @@ int Get_SensorTmp(void) {
} }
/******************************************************************************* /*******************************************************************************
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Zero_Calibration Function:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:У׼<D0A3><D7BC><EFBFBD>AD Description: Reads the Zero Temp.. And does something..
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:NULL
<20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>:NULL
*******************************************************************************/ *******************************************************************************/
void Zero_Calibration(void) { void Zero_Calibration(void) {
u32 zerop; u32 zerop;
int cool_tmp; int cool_tmp;
zerop = Get_AvgAd(); zerop = Get_AvgAd(); //get the current
cool_tmp = Get_SensorTmp(); cool_tmp = Get_SensorTmp(); //get the temp of the onboard sensor
if (zerop >= 400) { if (zerop >= 400) { //If the tip is too hot abort
gCalib_flag = 2; gCalib_flag = 2;
} else { } else {
if (cool_tmp < 300) { if (cool_tmp < 300) { //If cool temp is cool enough continue
gZerop_ad = zerop; gZerop_ad = zerop; //store the zero point
gCalib_flag = 1; gCalib_flag = 1;
} else { } else { //abort if too warm
gCalib_flag = 2; gCalib_flag = 2;
} }
} }
@@ -319,7 +319,6 @@ void Zero_Calibration(void) {
s16 Get_Temp(s16 wk_temp) { s16 Get_Temp(s16 wk_temp) {
int ad_value, cool_tmp, compensation = 0; int ad_value, cool_tmp, compensation = 0;
static u16 cnt = 0, h_cnt = 0; static u16 cnt = 0, h_cnt = 0;
s16 rl_temp = 0;
ad_value = Get_AvgAd(); ad_value = Get_AvgAd();
cool_tmp = Get_SensorTmp(); cool_tmp = Get_SensorTmp();
@@ -329,16 +328,16 @@ s16 Get_Temp(s16 wk_temp) {
else { else {
h_cnt = 0; h_cnt = 0;
if (ad_value > 3800 && ad_value < 4095) if (ad_value > 3800 && ad_value < 4095)
cnt++; //20150720<32>޸<EFBFBD> cnt++;
else else
cnt = 0; cnt = 0;
} }
if (h_cnt >= 60 && cnt == 0) if (h_cnt >= 60 && cnt == 0)
gAlarm_type = SEN_ERR; //Sen-err gAlarm_type = SEN_ERR; //Sensor error -- too many invalid readings
if (h_cnt == 0 && cnt >= 10) if (h_cnt == 0 && cnt >= 10)
gAlarm_type = HIGH_TEMP; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD> gAlarm_type = HIGH_TEMP; //Stuck at a really high temp -> Has mosfet failed
if (h_cnt < 60 && cnt < 10) if (h_cnt < 60 && cnt < 10)
gAlarm_type = NORMAL_TEMP; gAlarm_type = NORMAL_TEMP; //No errors so far
compensation = 80 + 150 * (wk_temp - 1000) / 3000; compensation = 80 + 150 * (wk_temp - 1000) / 3000;
if (wk_temp == 1000) if (wk_temp == 1000)
@@ -349,10 +348,9 @@ s16 Get_Temp(s16 wk_temp) {
ad_value -= compensation; ad_value -= compensation;
} }
if (cool_tmp > 400) if (cool_tmp > 400)
cool_tmp = 400; cool_tmp = 400; //cap cool temp at 40C
rl_temp = (ad_value * 1000 + 806 * cool_tmp - gZerop_ad * 1000) / 806;
return rl_temp; return (ad_value * 1000 + 806 * cool_tmp - gZerop_ad * 1000) / 806;
} }
/******************************************************************************* /*******************************************************************************

View File

@@ -18,48 +18,7 @@
#include "Disk.h" #include "Disk.h"
#include "UI.h" #include "UI.h"
//Choose startup logo by manufacturer
#ifdef MFTSEEED
//V -- Seeed startup logo
const u8 Seeed[] = {/*12*16*/0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x80, 0x00, 0x00, 0xC0, 0xF8, 0x38, 0x04, 0x00, 0x04, 0x38, 0xF8, 0xC0,
0x00, 0x00, 0x80, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x30,
0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30,
0x10, 0x10, 0x10, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x80, 0xC0, 0x60,
0x30, 0x10, 0x10, 0x10, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x80, 0xC0, 0x60,
0x30, 0x10, 0x10, 0x10, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x80, 0xC0,
0x40, 0x20, 0x20, 0x20, 0x20, 0x40, 0xC0, 0xFC, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0x0F, 0x1C, 0x38, 0x23, 0x6F, 0x5C, 0x00, 0x00, 0x00, 0x5C, 0x6F, 0x23,
0x38, 0x1C, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x23,
0x42, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1C, 0x00, 0x07, 0x1E, 0x32, 0x22,
0x42, 0x42, 0x42, 0x42, 0x62, 0x32, 0x03, 0x00, 0x00, 0x07, 0x1E, 0x32,
0x22, 0x42, 0x42, 0x42, 0x42, 0x22, 0x32, 0x03, 0x00, 0x07, 0x1E, 0x32,
0x22, 0x42, 0x42, 0x42, 0x42, 0x62, 0x32, 0x03, 0x00, 0x00, 0x0F, 0x18,
0x10, 0x20, 0x20, 0x20, 0x20, 0x10, 0x18, 0x7F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, /*"D:\yinyongqin\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\LOGOIN.ddMP.bmp",0*/
};
#else
//MiniDSO startup logo
const u8 Mini[] = {/*12*16*/0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE,
0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE,
0xFE, 0xFE, 0xFC, 0x78, 0x30, 0x80, 0xC0, 0xC0, 0x00, 0x18, 0x9C, 0xCE,
0xE6, 0xF0, 0xF8, 0xFC, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0xE0,
0xF0, 0xF8, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x03, 0x07, 0x0F, 0x1F,
0x3F, 0x7F, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x03, 0x07, 0x07,
0x03, 0x19, 0x1C, 0x0E, 0x67, 0x73, 0x39, 0x1C, 0x0E, 0x07, 0x03, 0x01,
0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, /*"D:\yinyongqin\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\LOGOIN.BMP.bmp",0*/
};
#endif
//Setup params depending on oled model //Setup params depending on oled model
#ifdef SSD1316 #ifdef SSD1316
u8 gOled_param[50] = {0x80,0xAE,0x80,0x00,0x80,0x10,0x80,0x40,0x80,0xB0,0x80, u8 gOled_param[50] = {0x80,0xAE,0x80,0x00,0x80,0x10,0x80,0x40,0x80,0xB0,0x80,
@@ -230,87 +189,7 @@ void Clear_Screen(void) {
Oled_DrawArea(0, i * 8, 128, 8, tx_data); Oled_DrawArea(0, i * 8, 128, 8, tx_data);
} }
} }
/*******************************************************************************
Function:Display_BG
Description:Display the bootup graphics (the logo)
* Reads the file if present in the filesystem otherwise uses hard coded ones
*******************************************************************************/
void Display_BG(void) {
u8 i, j, k, m, n, p, ch, Palette = 1;
u8* bmpfile;
u16 filelen;
u16* Root_addr = 0;
u8 *ptr = 0;
u8 g_au8TxData[128];
if ((bmpfile = SearchFile("LOGOIN BMP", &filelen, Root_addr))) {
if (bmpfile[0] == 'B' && bmpfile[1] == 'M') {
if ((bmpfile[0x36] == 0xFF) && (bmpfile[0x37] == 0xFF)
&& (bmpfile[0x38] == 0xFF)) {
Palette = 0;
}
memset(&g_au8TxData[1], 0, 127);
p = 0x1;
for (i = 15; i >= 8; i--) {
m = 0;
for (j = 0; j < 12; j++) {
ch = bmpfile[0x3E + i * 12 + j];
n = 0x80;
for (k = 0; k < 8; k++) {
if (Palette) {
if (!(ch & n))
g_au8TxData[m + 1] |= p;
} else {
if ((ch & n))
g_au8TxData[m + 1] |= p;
}
m++;
n >>= 1;
}
}
p <<= 1;
}
Oled_DrawArea(0, 0, 96, 8, g_au8TxData);
Clear_Watchdog();
memset(&g_au8TxData[1], 0, 127);
p = 0x1;
for (i = 0; i < 8; i++) {
m = 0;
for (j = 0; j < 12; j++) {
ch = bmpfile[0x3E + (7 - i) * 12 + j];
n = 0x80;
for (k = 0; k < 8; k++) {
if (Palette) {
if (!(ch & n))
g_au8TxData[m + 1] |= p;
} else {
if ((ch & n))
g_au8TxData[m + 1] |= p;
}
m++;
n >>= 1;
}
}
p <<= 1;
}
Oled_DrawArea(0, 8, 96, 8, g_au8TxData);
Delay_Ms(1000);
Clear_Watchdog();
return;
}
} else {
//Check the #defines for which one to use
#ifdef MFTSEEED
ptr = (u8*)Seeed;
#else
ptr = (u8*) Mini;
#endif
Oled_DrawArea(0, 0, 96, 16, ptr);
Delay_Ms(1000);
Clear_Watchdog();
}
}
/******************************** END OF FILE *********************************/ /******************************** END OF FILE *********************************/

View File

@@ -26,28 +26,6 @@ u8 gUp_flag = 0, gDown_flag = 0, gLevel_flag = 0, gTempset_showctrl = 0;
u16 gTemp_array_u16[208]; u16 gTemp_array_u16[208];
u16 gSet_table[2] = { 4000, 1000 }; u16 gSet_table[2] = { 4000, 1000 };
u32 gCont = 0; u32 gCont = 0;
static u8 Ver_s[] = { /*12*16*/0x04, 0x0C, 0x74, 0x80, 0x00, 0x00, 0x00, 0x80,
0x74, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1C, 0x60, 0x1C, 0x03,
0x00, 0x00, 0x00, 0x00,/*"V",0*/
0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1F, 0x22, 0x42, 0x42, 0x42, 0x42, 0x22, 0x13, 0x00, 0x00, 0x00,/*"e",1*/
0x00, 0x40, 0x40, 0xC0, 0x00, 0x80, 0x40, 0x40, 0x40, 0xC0, 0x00, 0x00,
0x00, 0x40, 0x40, 0x7F, 0x41, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,/*"r",2*/
0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*":",3*/
0x00, 0x78, 0x04, 0x04, 0x04, 0x04, 0x04, 0x88, 0x78, 0x00, 0x00, 0x00,
0x00, 0x60, 0x50, 0x48, 0x44, 0x42, 0x41, 0x40, 0x70, 0x00, 0x00, 0x00,/*"2",4*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/*".",5*/
0x00, 0xE0, 0x18, 0x08, 0x04, 0x04, 0x04, 0x08, 0x18, 0xE0, 0x00, 0x00,
0x00, 0x0F, 0x30, 0x20, 0x40, 0x40, 0x40, 0x20, 0x30, 0x0F, 0x00, 0x00,/*"0",6*/
0x00, 0x00, 0x00, 0x08, 0x08, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x40, 0x7F, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00,/*"1",7*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*" ",5*/
};
/******************************************************************************/ /******************************************************************************/
/******************************************************************************* /*******************************************************************************
@@ -196,45 +174,6 @@ void Show_Notice(void) {
if (i == 4) if (i == 4)
i = 0; i = 0;
} }
/*******************************************************************************
Function:
Description:
*******************************************************************************/
void Show_Ver(u8 ver[], u8 flag) {
u8 *ptr;
int k, i;
u8 temp0 = 0, temp1 = 0, temp2 = 0;
if (ver[2] >= 0x30 && ver[2] < 0x3a)
temp1 = ver[2] - 0x30; //shift from ascii to the raw value
if (ver[3] >= 0x30 && ver[3] < 0x3a)
temp2 = ver[3] - 0x30;
if (ver[0] >= 0x30 && ver[0] < 0x3a)
temp0 = ver[0] - 0x30;
for (i = 0; i < 24; i++) {
Ver_s[4 * 24 + i] = Number12[temp0 * 24 + i];
Ver_s[6 * 24 + i] = Number12[temp1 * 24 + i];
Ver_s[7 * 24 + i] = Number12[temp2 * 24 + i];
}
for (k = 0; k < 16; k++) {
if (flag == 0) {
Show_ReverseChar((u8*) Ver_s, 8, 12, 2);
ptr = (u8*) gTemp_array;
} else {
ptr = (u8*) Ver_s;
}
for (i = 0; i < 8; i++) {
ptr = Oled_DrawArea(i * 12, 0, 12, 16, ptr);
}
}
if (flag == 0) {
Delay_Ms(1000);
Clear_Screen();
Clear_Watchdog();
}
}
/******************************************************************************* /*******************************************************************************
Function: Function:
@@ -309,7 +248,7 @@ void Show_TempDown(s16 temp, s16 dst_temp) {
*******************************************************************************/ *******************************************************************************/
void Show_Cal(u8 flag) { void Show_Cal(u8 flag) {
u8 i; u8 i;
u8* ptr; u8* ptr = 0;
if (flag == 1) if (flag == 1)
ptr = (u8*) Cal_Done; ptr = (u8*) Cal_Done;
@@ -329,7 +268,7 @@ void Show_Cal(u8 flag) {
*******************************************************************************/ *******************************************************************************/
void Show_Warning(void) { void Show_Warning(void) {
u8 i; u8 i;
u8* ptr; u8* ptr = 0;
static u8 flag = 0; static u8 flag = 0;
switch (Get_AlarmType()) { switch (Get_AlarmType()) {
@@ -367,19 +306,11 @@ void Show_Warning(void) {
fill_trgl: 0,1,2 <20><>ʵ<EFBFBD><CAB5>,<2C><>ʵ<EFBFBD><CAB5>,<2C><>ʵ<EFBFBD><CAB5> fill_trgl: 0,1,2 <20><>ʵ<EFBFBD><CAB5>,<2C><>ʵ<EFBFBD><CAB5>,<2C><>ʵ<EFBFBD><CAB5>
*******************************************************************/ *******************************************************************/
void Show_Triangle(u8 empty_trgl, u8 fill_trgl) { void Show_Triangle(u8 empty_trgl, u8 fill_trgl) {
int j;
u8* ptr; u8* ptr;
ptr = (u8*) Triangle; //Get pointer to the pre-computed triangle array ptr = (u8*) Triangle; //Get pointer to the pre-computed triangle array
//#TODO Need to come clean this up later..
if ((empty_trgl == 0) && (fill_trgl == 0)) { if ((empty_trgl == 0) && (fill_trgl == 0)) {
//V-- What is the mess.. im definitly cleaning this up later dont stress ptr = Oled_DrawArea(0, 0, 16, 16, (u8*) ptr);
for (j = 0; j < 2; j++) { ptr = Oled_DrawArea(5 * 16, 0, 16, 16, (u8*) ptr);
if (j == 0)
ptr = Oled_DrawArea(0, 0, 16, 16, (u8*) ptr);
else if (j == 1)
ptr = Oled_DrawArea(5 * 16, 0, 16, 16, (u8*) ptr);
}
} else if ((empty_trgl != 0) && (fill_trgl == 0)) { } else if ((empty_trgl != 0) && (fill_trgl == 0)) {
if (empty_trgl == 1) { if (empty_trgl == 1) {
ptr += 32; ptr += 32;
@@ -933,7 +864,7 @@ void Temp_SetProc(void) {
void OLed_Display(void) { void OLed_Display(void) {
u16 ht_flag; u16 ht_flag;
s16 temp_val, dst_temp; s16 temp_val, dst_temp;
static u8 td_flag = 0, ver_flag = 0, config_show = 0; static u8 td_flag = 0, config_show = 0;
static u16 td_cnt = 0; static u16 td_cnt = 0;
static u16 bk = 0x33, id_cnt = 0; static u16 bk = 0x33, id_cnt = 0;
@@ -944,11 +875,7 @@ void OLed_Display(void) {
Clear_Screen(); Clear_Screen();
} }
if (ver_flag == 0) { if (UI_TIMER== 0 && G6_TIMER != 0) {
Display_BG();
Show_Ver(device_info.ver, 0);
ver_flag = 1;
} else if (UI_TIMER== 0 && G6_TIMER != 0) {
Show_Notice(); Show_Notice();
UI_TIMER = 50; UI_TIMER = 50;
} }
@@ -958,7 +885,7 @@ void OLed_Display(void) {
if(bk == 0) Oled_DisplayOff(); if(bk == 0) Oled_DisplayOff();
} }
if((Get_MmaShift() == 1) || (Get_gKey() != NO_KEY)) { if((Get_MmaShift() == 1) || (Get_gKey() != NO_KEY)) {
G6_TIMER = device_info.idle_time; G6_TIMER = device_info.idle_time; //reset the idle timer
bk = 0x33; bk = 0x33;
Sc_Pt(bk); Sc_Pt(bk);
Oled_DisplayOn(); Oled_DisplayOn();
@@ -970,9 +897,7 @@ void OLed_Display(void) {
Set_LongKeyFlag(1); Set_LongKeyFlag(1);
Clear_Screen(); Clear_Screen();
} }
ht_flag = Get_HtFlag(); ht_flag = Get_HtFlag();
if(ht_flag != 1) { if(ht_flag != 1) {
if(td_flag == 1) Clear_Screen(); if(td_flag == 1) Clear_Screen();
td_cnt = 0; td_cnt = 0;
@@ -1030,10 +955,6 @@ void OLed_Display(void) {
} }
if(config_show == 0) { if(config_show == 0) {
Show_Config(); Show_Config();
} else if(config_show == 1) {
Display_BG();
} else if(config_show == 2) {
Show_Ver(device_info.ver,1);
} }
if(config_show != 3) { if(config_show != 3) {
Set_gKey(NO_KEY); Set_gKey(NO_KEY);