Commit fb3d391b authored by hu's avatar hu

首次提交,GPIO配置完成,电机好使,捕获中断好使,5912不好使

parents
/ghs/obj/*.o
/ghs/obj/*.d
/ghs/obj/*.dbo
/ghs/obj/*.lst
/.tags_sorted_by_file
/.tags
/.vscode
/bin
/CYJ_MV18_Data
*.vscode
*.tags_sorted_by_file
*.tags
/ghs/project.out
# Object files
*.o
*.ko
*.obj
*.elf
*.su
*.idb
*.pdb
*.pbi
*.zip
*.7z
/ghs/*.log
/ghs/*.dep
/ghs/*.dla
/ghs/*.dle
/ghs/*.dnm
/ghs/*.map
/ghs/*.run
/ghs/*
/ghs/project.mem
*.gh~
*.sublime-project
*.sublime-workspace
*.clang-format
This source diff could not be displayed because it is too large. You can view the blob instead.
OPEN source 0 0 60 100
Source < attributes TOOLTIP on,TOOLTIP_FORMAT signed,TOOLTIP_MODE details,FREEZE off,MARKS off
OPEN assembly 60 0 40 31
Assembly < attributes ADR on,CODE off,ABSADR on,SYMB off,FORMAT Auto,FREEZE off,TOPPC 0xF48000
OPEN procedure 0 39 60 17
Procedure < attributes VALUES on,TYPES off
OPEN register 60 31 40 25
Register < attributes FORMAT AUTO,COMPLEMENT None
OPEN memory 60 56 40 22
Memory < attributes FORMAT hex,COMPLEMENT None,WORD 1,ASC on,ADR on,MODE automatic,UPDATERATE 10,SHOW_ADDRESSSPACE 0,ADDRESS 0x80
OPEN data 60 0 60 100
Data:1 < attributes SCOPE global,COMPLEMENT None,FORMAT Symb,MODE periodical,SORT NotSort,UPDATERATE 1,NAMEWIDTH 16
OPEN data 0 56 60 53
Data:2 < attributes SCOPE local,COMPLEMENT None,FORMAT Symb,MODE periodical,SORT NotSort,UPDATERATE 1,NAMEWIDTH 16
OPEN command 60 78 40 22
Command < attributes CACHESIZE 1000
bckcolor 50331647
font 'Courier New' 9 BLACK
AUTOSIZE on
ACTIVATE "Command" "Register" "Memory" "Procedure" "Assembly" "Data:2" "Data:1" "Source"
[STARTUP]
CPUTARGETTYPE=0
USE_CYCLONEPRO_RELAYS=1
CyclonePro_poweroffonexit=0
CyclonePro_currentvoltage=255
CyclonePro_PowerDownDelay=250
CyclonePro_PowerUpDelay=250
RESET_DELAY=0
PORT=101
interface_selection=4
SHOWDIALOG=0
IO_DELAY_SET=0
frequency_has_changed_old_io_delay_cnt=0
IO_DELAY_CNT=0
PCI_DELAY=0
[Environment Variables]
GENPATH={Project}Sources;{Compiler}lib\hc12c\src;{Compiler}lib\hc12c\include;{Compiler}lib\hc12c\lib;{Compiler}lib\xgatec\src;{Compiler}lib\xgatec\include;{Compiler}lib\xgatec\lib
LIBPATH={Compiler}lib\hc12c\include;{Compiler}lib\xgatec\include
OBJPATH={Project}bin
TEXTPATH={Project}bin
ABSPATH={Project}bin
[HI-WAVE]
Target=icd12
Layout=C_layout.hwl
LoadDialogOptions=AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main"
CPU=HC12
MainFrame=0,1,-1,-1,-1,-1,182,182,1622,941
TOOLBAR=57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806
[HC12MultilinkCyclonePro_GDI_SETTINGS]
CMDFILE0=CMDFILE STARTUP ON ".\cmd\CyclonePro_USB_startup.cmd"
CMDFILE1=CMDFILE RESET ON ".\cmd\CyclonePro_USB_reset.cmd"
CMDFILE2=CMDFILE PRELOAD ON ".\cmd\CyclonePro_USB_preload.cmd"
CMDFILE3=CMDFILE POSTLOAD ON ".\cmd\CyclonePro_USB_postload.cmd"
CMDFILE4=CMDFILE VPPON ON ".\cmd\CyclonePro_USB_vppon.cmd"
CMDFILE5=CMDFILE VPPOFF ON ".\cmd\CyclonePro_USB_vppoff.cmd"
CMDFILE6=CMDFILE UNSECURE ON ".\cmd\CyclonePro_USB_erase_unsecure_hcs12xe.cmd"
MCUID=0x01C9
NV_PARAMETER_FILE=
NV_SAVE_WSP=0
NV_AUTO_ID=1
[ICD12]
COMSETTINGS=SETCOMM DRIVER NOPROTOCOL NOPERIODICAL
SETCLKSW=0
HOTPLUGGING=0
DETECTRUNNING=0
RESYNCONCOPRESET=0
BDMAutoSpeed=1
BDMClockSpeed=0
HIGHIODELAYCONSTFORPLL=40
[PORT]
IP=
File added
This diff is collapsed.
/*
* api_ADC.h
*
* Created on: Aug 8, 2014
* Author: QTC
*/
#ifdef GLOBALS_API_ADC
#define EXTERN_API_ADC
#else
#define EXTERN_API_ADC extern
#endif
#ifndef API_ADC_H_
#define API_ADC_H_
//Volt--AD
/*
#define V_10v 255
#define V_10_5v 268
#define V_16v 410
#define V_16_5v 421
#define V_18v 459
#define V_18_5v 471
#define V_34v 867
#define V_34_5v 879
#define V_36v 919
#define V_36_5v 931
#define V_40v 1003
#define V_40_5v 1015
*/
//#define V_5_7v 275
#define V_6v 290
// #define V_6_5v 280//300//275//309
#define V_7v 330 //2020-10-08 µçѹ8V¸Ä7V(¸Ä¹¦ÄÜ)
#define V_8v 380//315//370
// #define V_8_5v 395//356//404
//#define V_9v 428
//#define V_9_5v 452
#define V_15_5v 738
#define V_16v 762
#define V_16_5v 785
#define V_17v 810
#define V_18v 857
EXTERN_API_ADC void Api_GetAdcResult(void);
EXTERN_API_ADC INT8U Api_FilterTimerOver(_Clock *T);
EXTERN_API_ADC void Api_SetFilterTimer(INT16U Second, _Clock *T);
EXTERN_API_ADC void PowerManage(void);
#endif /* API_ADC_H_ */
/*
* bsp_ADC.c
*
* Created on: Aug 5, 2014
* Author: QTC
*/
#define GLOBALS_BSP_ADC
#include "defines.h"
/*
* bsp_ADC.c
*
* Created on: Aug 8, 2014
* Author: QTC
*/
#include "g_includes.h"
/*-------------------------------------------------------------------------
* Function Name : bsp_ADC_Init
* Description : ADC初始化
* Input :
* Output : None
* Return : None
* onther :
--------------------------------------------------------------------------*/
void bsp_ADC_Init(void)
{
ATDCTL0 = Disable;
ATDCTL1_ETRIGSEL = Disable;
ATDCTL1_SRES = 1; //10位精度
ATDCTL1_SMP_DIS = Disable; //
ATDCTL1_ETRIGCH = 0; //转化通道初始化
ATDCTL2_AFFC = Disable; //分别清除每一个 CCFX标志位用写1的方式
ATDCTL2_ICLKSTP = Enable; //使能停止模式
ATDCTL2_ETRIGE = Disable; //外部触发禁止
ATDCTL2_ASCIE = Disable; //禁止转化中断
ATDCTL2_ACMPIE = Disable; //禁止比较中断
ATDCTL3_DJM = Enable; //右对齐
ATDCTL3_S1C = 1; //转化长度3
ATDCTL3_S2C = 0;
ATDCTL3_S4C = 0;
ATDCTL3_S8C = 0;
ATDCTL3_FIFO = Disable; //不是FIFO模式 并且各自的结果放在各自的寄存器 ATDDRx
ATDCTL3_FRZ = Disable; //冻结模式继续运行
ATDCTL4_SMP = 6; //采样时间 4 CYCLE
ATDCTL4_PRS = 16; //
ATDCTL5_SC = Disable; //
ATDCTL5_Cx = CHNAL6;
ATDDIEN = 0x000F; //控制个别AD管脚作为通用管脚输入
ATDCTL5_SCAN = Enable; //
ATDCTL5_MULT = 0; //
}
/*
* bsp_ADC.h
*
* Created on: Aug 5, 2014
* Author: QTC
*/
#ifdef GLOBALS_BSP_ADC
#define EXTERN_BSP_ADC
#else
#define EXTERN_BSP_ADC extern
#endif
#ifndef BSP_ADC_H_
#define BSP_ADC_H_
#define CHNAL0 0
#define CHNAL1 1
#define CHNAL2 2
#define CHNAL3 3
#define CHNAL4 4
#define CHNAL5 5
#define CHNAL6 6
#define CHNAL7 7
#define CHNAL8 8
#define CHNAL9 9
#define CHNAL10 10
#define CHNAL11 11
#define SOFT_TRIG_MODE 0x40
#define ONE_SHOT_MODE 0x20
EXTERN_BSP_ADC void bsp_ADC_Init(void);
EXTERN_BSP_ADC void bsp_Channel_Sel(INT8U chl);
#endif /* BSP_ADC_H_ */
This diff is collapsed.
#ifndef __API_FLASH_H
#define __API_FLASH_H
/* Error codes */
#define Ok 0
#define ERASED 1
#define NON_ERASED 2
#define MISALIGNED_ADDRESS 3
#define ACCESS_ERROR 4
#define VERIFICATION_FAILED 5
#define LENGTH_OUT_OF_RANGE 6
#define DFLASH_FirstAddress 0x100000 //0x004400 (HY64)
#define DFLASH_APPvAddress 0x100000+256 //=0xA77A表示应用程序无效
#define APP_LOGICAL_ADDRESS 0xC000 //APP应用程序的 STARTUP 地址
#define BOOT_LOGICAL_ADDRESS 0xFC00 //APP应用程序的 STARTUP 地址
INT32U Local2Global(INT32U address);
INT32U Global2Local(INT32U address);
INT8U GET_Global_sector_PRG(INT32U address);
INT8U D_P_FLASH_Erase_Verify_Section(INT8U mTYPE, INT32U address, INT16U number_of_words);
INT8U D_P_FLASH_Program(INT8U mTYPE, INT32U address, INT16U *ptr, INT8U number_of_words);
INT8U D_P_FLASH_N_Program(INT8U mTYPE, INT32U address, INT16U *ptr, INT8U number_of_words);
INT8U PP_FLASH_N_Program(INT32U address, INT8U *ptr, INT8U number_of_bytes);
INT8U D_P_FLASH_Erase_Sector(INT8U mTYPE, INT32U address);
INT16U DFLASH_Read_Word(INT32U address);
void WRITE_BZ_inDFLAH2Sector(INT16U bz);
INT16U GetResetAddr_Word(void);
INT32U PFlash_Read (INT32U ADDR32);
INT32U PFlash_Near_Read (INT32U ADDR32);
#endif
#include "defines.h"
//--------------------------------------------------------------------------
//中断服务函数
//--------------------------------------------------------------------------
#pragma CODE_SEG NON_BANKED
//
interrupt void SCI0_ISR(void)
{
SCI0SR1_RDRF = ClearFlag;
}
#pragma CODE_SEG DEFAULT
//-------------------------------------------------------------------------
//Api_SCI_Trans_Bytes 串口发送 INT8U *str,INT16U len : str:发送字符串 len:发送数据长度
//--------------------------------------------------------------------------
void Api_SCI_Trans_Bytes(INT8U *str, INT8U len)
{
INT8U i;
for(i = 0; i < len; i++) Api_SCI_Trans_Byte(*str++);
}
//-------------------------------------------------------------------------
//Function Name : Api_SCI_Trans_Byte 串口发送
//--------------------------------------------------------------------------
void Api_SCI_Trans_Byte(INT8U data)
{
while(SCI0SR1_TDRE == null); //发送数据寄存器空=0就是没空,1是空
SCI0DRL = data;
while(!SCI0SR1_TC); //=1发送完成,跳出
}
//-------------------------------------------------------------------------
//Function Name : Api_SCI_Init SCI模块初始化
//--------------------------------------------------------------------------
void Api_SCI_Init(INT8U on) //lin 转串口芯片 以下4项包括OFF下4项 20161012徐勤东增加,去掉原io init中赋值
{
if(on)
{
SCI0SR2_AMAP = Disable;
SCI0CR1_LOOPS = Disable; //串口正常模式
SCI0CR1_SCISWAI = Disable; //使能等待模式
SCI0CR1_M = Disable; //8 byte 模式
SCI0CR1_WAKE = Enable; //Adrress Wake
SCI0CR1_PE = Disable; //禁止校验
SCI0SR1_RDRF = Disable;
//SCI0SR2_BRK13 = !Enable; //14bit break //0
SCI0SR2_BRK13 = 1; //14bit break //0
SCI0SR2_AMAP = Disable;
//SCI0BDH_TNP = 3; //div4;
SCI0BDH_IREN = Disable; //禁止红外线
SCI0BD_SBR = 17; //208
/*SCI0CR2_TIE = Disable;
SCI0CR2_TCIE = Disable;
SCI0CR2_ILIE = Disable; */
SCI0CR2_RE = Enable; //使能接收
// #if MODE_SEND
SCI0CR2_TE = Enable; //使能发送
//SCI0CR2_RWU = Enable;
//SCI0CR2_SBK = Disable;
SCI0CR2_RIE = Enable; //使能接收中断
SCI0SR2_AMAP = Enable;
SCI0ACR2_BKDFE = Enable; //使能断点检测电路
SCI0ACR2_BERRM = 0;
//SCI0ACR1_BERRIE = Disable; //位错误
//SCI0ACR1_RXEDGIE = Disable; //
SCI0ACR1_BKDIE = Enable; //断点检测使能
SCI0ASR1_BKDIF = ClearFlag;
}
else
{
SCI0CR1_WAKE = Disable; //Adrress Wake
SCI0CR2_RE = Disable; //使能接收
SCI0CR2_TE = Disable; //使能发送
SCI0CR2_RIE = Disable; //使能接收中断
SCI0ACR2_BKDFE = Disable; //使能断点检测电路
SCI0ACR1_BKDIE = Disable; //断点检测使能
SCI0ASR1_BKDIF = ClearFlag;
}
}
#ifndef _API_SCI_H
#define _API_SCI_H
typedef union
{
INT32U GET_FLAG;
struct
{
INT8U GET_CNT;
INT8U GET_HEAD1;
INT8U GET_HEAD2;
INT8U GET_OK;
} BYTES;
} SCI_RX_ST_TYPE;
#define USART_LEN_MAX 8
#define URX_LEN_SET 7
extern struct
{
INT8U COME;
INT8U RX_RDY;
INT8U E8_BUSY; //准备接收8E
INT8U ACK_RDY; //已经接到8E启动发送
INT8U RX_BUSY;
INT8U RX_CHK; // 6 // 8 //SCI_RX_REV[0]+1 //len的值里不包含len本身,所以只能额外+1
INT8U RX_BUF2[USART_LEN_MAX]; //接收缓冲,最大USART_REC_LEN个字节.
INT8U RX_BUF1[USART_LEN_MAX];
INT8U TX_BUF[USART_LEN_MAX];
SCI_RX_ST_TYPE RX_ST;
//------------------------------------------------------------用于串口调试模式
INT8U RV_Full; //与上位机通讯标志
INT8U ADJ_EN; //调试标志
INT8U MODES; //调试标志
} SCI;
INT8U Api_SCI_CHK(INT8U *str, INT8U len);
void App_SCI_SendMsg(void);
void Api_SCI_Trans_Bytes(INT8U *str, INT8U len);
void Api_SCI_Trans_Byte(INT8U data);
void Api_SCI_Init(INT8U on);
void SCI_VAR_CLR(INT8U mode) ;
#define URX_Finish SCI.RX_ST.BYTES.GET_OK
#define URX_GET_HEAD2 SCI.RX_ST.BYTES.GET_HEAD2
#define URX_GET_HEAD1 SCI.RX_ST.BYTES.GET_HEAD1
#define URX_cnt SCI.RX_ST.BYTES.GET_CNT
#define URX_all SCI.RX_ST.GET_FLAG
#endif
\ No newline at end of file
This diff is collapsed.
#ifndef __APPLICATIONLAYER_H
#define __APPLICATIONLAYER_H
#define GetStatus 0xaa
enum
{
GetStatus_SessionStatus,
GetStatus_SecurityStatus,
GetStatus_KeyStatus,
GetResetAddr,
};
#define DiagnosticSessionControl 0x10
#define ECU_Reset 0x11
#define SecurityAccess 0x27
#define CommunicationControl 0x28
#define TesterPresent 0x3e
#define Control_DTC_Setting 0x85
#define ReadDataByIdentifier 0x22
#define WriteDataByIdentifier 0x2e
#define RoutineControl 0x31
#define RequestDownload 0x34
#define TransferData 0x36
#define TransferExit 0x37
#define InputOutPutControlByIdentifier 0x2f
#define CAL_KEY_VALID 1
#define CAL_KEY_INVALID 0
#define ROUTINE_DOWNLOAD_FLASH 0
#define ROUTINE_Verify_FLASH 1
#define ROUTINE_Verify_APP 2
enum
{
SESSION_DEFAULT,
SESSION_EXTENDED_DIAGNOSTIC,
SESSION_PROGRAMMING,
};
enum
{
SECURITY_LOCK,
SECURITY_UNLOCK,
};
typedef struct
{
INT8U SessionStatus;// = SESSION_DEFAULT;
INT8U SecurityStatus;// = SECURITY_LOCK;
INT8U CalKey_Status;
INT16U Security16_KEY;
INT8U RoutineStatus; //0 down 1 up
INT8U RecvDataCnt;
INT8U RecvDataLen;
INT8U SessionTimeoutSw;
INT8U SessionTimeoutCnt;
} AppLayerParameter;
extern AppLayerParameter AppLayer;
extern INT16U RANDOM_TIME;
extern INT32U RAND_D32;
void SessionTimeoutCnt_PRG(void);
void SERVER_10H_Presponse(void);
void SERVER_ALL_Nresponse(INT8U code);
void Comm2EH_Prespons_PRG(void);
INT16U calcKey(INT16U seed);
void GJ_SEED_MODE_QR_KEY(INT8U *pSEED);
void AppLayer_Rx_PRG(void);
#endif
#define GLOBALS_API_BD8379_H
#include "g_includes.h"
#include "defines.h"
/*-------------------------------------------------------------------------
* Function Name : DB8379_Init
* Description :
* Input : None
* Output : None
* Return : None
* onther :
--------------------------------------------------------------------------*/
void delay_ns(INT32U time)
{
INT32U i;
for(i = 0; i < time; i++)
{
asm NOP;
_FEED_COP();
}
}
/*-------------------------------------------------------------------------
* Function Name : DB8379_Init
* Description :
* Input : None
* Output : None
* Return : None
* onther :
--------------------------------------------------------------------------*/
void DB8379_Init(void)
{
DB8379_OE_P = 0;
DB8379_RST_P = 0;
delay_ns(30);
DB8379_RST_P = 1;
}
/*-------------------------------------------------------------------------
* Function Name : DB8379_WriteData
* Description :
* Input : None
* Output : None
* Return : None
* onther :
--------------------------------------------------------------------------*/
void DB8379_WriteData(INT8U State)
{
INT8U i = 0;
INT8U num = 0;
INT32U tmp[2];
INT32U mask = 0x80000000;
if(State == ON)
{
tmp[0] = BD83790B;
tmp[1] = BD83790A;
}
else
{
tmp[0] = 0;
tmp[1] = 0;
}
DB8379_SIN_P = 0;
DB8379_CLK_P = 0;
DB8379_LE_P = 0;
for(num = 0; num < 2; num++)
{
for(i = 0; i < 12; i++)
{
if(tmp[num] & mask)
{
DB8379_SIN_P = 1;
}
else
{
DB8379_SIN_P = 0;
}
delay_ns(8);
DB8379_CLK_P = 1;
delay_ns(28);
DB8379_CLK_P = 0;
mask >>= 1;
}
mask = 0x80000000;
}
DB8379_LE_P = 1;
delay_ns(14);
DB8379_LE_P = 0;
}
#include "defines.h"
#ifdef GLOBALS_API_BD8379_H
#define EXTERN_API_BD8379_H
#else
#define EXTERN_API_BD8379_H extern
#endif
#ifndef __API_BD8379_H
#define __API_BD8379_H
//#define DB8379_CLK_P PTV_PTV6
//#define DB8379_LE_P PTV_PTV5
//#define DB8379_OE_P PTV_PTV4
//#define DB8379_RST_P PTV_PTV2
//#define DB8379_SIN_P PTV_PTV1
#define BD8379_D0 0x00100000UL
#define BD8379_D1 0x00200000UL
#define BD8379_D2 0x00400000UL
#define BD8379_D3 0x00800000UL
#define BD8379_D4 0x01000000UL
#define BD8379_D5 0x02000000UL
#define BD8379_D6 0x04000000UL
#define BD8379_D7 0x08000000UL
#define BD8379_D8 0x10000000UL
#define BD8379_D9 0x20000000UL
#define BD8379_D10 0x40000000UL
#define BD8379_D11 0x80000000UL
//--A B C D E F G H --//
//--U5 U11 U8 U9 U12 U10 U7 U6 --//
EXTERN_API_BD8379_H void delay_ns(INT32U time);
EXTERN_API_BD8379_H void DB8379_Init(void) ;
EXTERN_API_BD8379_H void DB8379_WriteData(INT8U State);
#endif
\ No newline at end of file
This diff is collapsed.
/*
* gui_Display.h
*
* Created on: Aug 11, 2014
* Author: QTC
*/
#ifdef GLOBALS_GUI_BZZER
#define EXTERN_GUI_BZZER
#else
#define EXTERN_GUI_BZZER extern
#endif
#ifndef GUI_BZZER_H_
#define GUI_BZZER_H_
//Gui_SpeakOn(0x03);//"当"
//蜂鸣: 倒档--气压--取力器--超速--安全带
//Gui_SpeakOn(0x04); //"噔"(心跳仪声)
//蜂鸣: 驾驶室锁止
//Gui_SpeakOn(0x05);// "当1"
//蜂鸣: 机油压力低
//语音 + 蜂鸣: 气压 取力器 超速 安全带
#define StartAlr 1 //起车
#define RadioAlr 2 //雷达
#define RAlr 3 //倒档
#define OwnBrakeAlr 4 //空--------自主紧急制动
#define TurnLockAlr 5 //驾驶室锁止
#define GasAlr 6 //气压
#define OilAlr 7 //机油压力
#define PowerTakeoffAlr 8 //取力器
#define LDWAlr 9 //空--------车道偏离
#define AirFilterAlr 10 //空滤堵塞
#define WIFAlr 11 //油水分离 " 油滤含水过多,请注意 "
#define CoolLevelAlr 12 //冷却液位低
#define FuelAlr 13 //燃油低
#define AdblueAlr 14 //天蓝液
#define LampAlr 15 //空--------位置灯未关
#define OverSpeedAlr 16 //超速
#define DoorAlr 17 //门开
#define ParkAlr 18 //手刹
#define ExhaustAlr 19 //排辅开关
#define DrSafeAlr 20 //安全带
#define PsSafeAlr 21 //空--------副安全带
#define TurnOnAlr 22
#define TurnOffAlr 23
#define T_Minimum T1_100ms
#define DisAlr 255
#define AlwaysBp 255
#define IGNOFF 0
#define Stop_Lp_Code 0x2e
#define Play_VP_Lp_Code 0xa4
#define Stop_Code 0x2a
#define Play_Vp_Code 0xa6
#define Exe_Vm_Code 0xb0
#define Read_Status_Code 0x40
#define Read_Int_Code 0x46
#define Read_Id_Code 0x48
#define Dig_Read_Code 0xa2
#define Dig_Write_Code 0xa0
#define Chip_Erase_Code 0x26
#define Check_Sum_Code 0xf2
#define Pwr_Up_Code 0x10
#define Pwr_Dn_Code 0x12
#define Wr_Cfg_Reg_Code 0xb8
#define Rd_Cfg_Reg_Code 0xba
#define Reset_Code 0x14
EXTERN_GUI_BZZER void Gui_BeepPrioProc(_Beep *Bp);
EXTERN_GUI_BZZER void Gui_TurnBeep(void);
#endif /* GUI_BZZER_H_ */
This diff is collapsed.
/*
* api_Dflash.h
*
* Created on: Aug 7, 2014
* Author: QTC
*/
#ifdef GLOBALS_API_EE
#define EXTERN_API_EE
#else
#define EXTERN_API_EE extern
#endif
#ifndef API_EE_H_
#define API_EE_H_
#define CheckFlag 0x55
#define CLEAR_BASE 64
#define CLEAR_ODO_LEN 8
#define CLEAR_ODO_ADDR CLEAR_BASE + 0
//-- EEprom 24G16 --//
//2048Byte
//11λѰַ
//128ҳ*16
//8Block*256
//------------------//
#define Register_Len 16
//-- Acckm (Block0) --//
#define EEACC_START 0
#define EEACC_END 96
#define EEBAKACC 112
#define EE_2E_ADDR 0
#define EEPROM_BLOCK_ODO 0 //Acckm
#define EEPROM_BLOCK_DIAG_2E EEPROM_BLOCK1 //0xA2 //2E
#define EEPROM_BLOCK_DTC_COUNTER1 0xA4 //DTC
#define EEPROM_BLOCK_DTC_COUNTER2 0xA6 //DTC
EXTERN_API_EE void Api_CopyRam(INT8U *Dp, INT8U *Sp, INT8U Nub);
EXTERN_API_EE void Api_WriteMeterInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data);
EXTERN_API_EE void Api_ReadMeterInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data);
EXTERN_API_EE void Api_ClearAccStock(void);
EXTERN_API_EE INT8U Api_CreateCRCCheckSum(INT8U *p , INT8U Nub);
EXTERN_API_EE void Api_WriteAccReg(void);
EXTERN_API_EE void Api_ReadAccKm(void);
EXTERN_API_EE void Api_WriteProductInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data);
EXTERN_API_EE void Api_ReadProductInfo(INT8U PhyAdd, INT8U MemAdd, INT8U *Data);
EXTERN_API_EE void Write2EData(void);
EXTERN_API_EE void Init2EData(void);
EXTERN_API_EE void App_2E_Write_handle(void) ;
#endif /* API_EE_H_ */
This diff is collapsed.
#ifdef GLOBALS_BSP_IIC
#define EXTERN_BSP_IIC
#else
#define EXTERN_BSP_IIC extern
#endif
#ifndef BSP_IIC_H_
#define BSP_IIC_H_
//-- 8Block*256 --//
#define EEPROM_BLOCK0 0xA0 //Acckm
#define EEPROM_BLOCK1 0xA2 //2E
#define EEPROM_BLOCK2 0xA4 //DTC
#define EEPROM_BLOCK3 0xA6 //DTC
#define EEPROM_BLOCK4 0xA8
#define EEPROM_BLOCK5 0xAA
#define EEPROM_BLOCK6 0xAC
#define EEPROM_BLOCK7 0xAE
#define IIC_WaitOverTime 8500
#define RunErr 0
#define RunComplete 1
#define ACK 0
#define NACK 1
#define SCL PTP_PTP2
#define SDA PTP_PTP3
#define SDADIR DDRP_DDRP3
EXTERN_BSP_IIC void bsp_IIC_delay(void);
EXTERN_BSP_IIC void bsp_IIC_Start(void);
EXTERN_BSP_IIC void bsp_IIC_Stop(void);
EXTERN_BSP_IIC void bsp_IIC_ACK(void);
EXTERN_BSP_IIC void bsp_IIC_NACK(void);
EXTERN_BSP_IIC INT8U bsp_IIC_WaitAck(void);
EXTERN_BSP_IIC INT8U bsp_IIC_SendByte(INT8U Data);
EXTERN_BSP_IIC INT8U bsp_IIC_WritePage(INT8U PhyAdd, INT8U MemAdd, INT8U *Data, INT8U len);
EXTERN_BSP_IIC INT8U bsp_IIC_ReadByte(void);
EXTERN_BSP_IIC INT8U bsp_IIC_ReadPage(INT8U PhyAdd, INT8U MemAdd, INT8U *Data, INT8U len);
#endif /* BSP_IIC_H_ */
#ifndef _FUELCONFIG_H
#define _FUELCONFIG_H
typedef unsigned int INT16U;
typedef unsigned char INT8U;
typedef unsigned long INT32U;
//Fuel Config
typedef struct _FuelStruct {
INT16U FuelShortCircuitR;
INT16U FuelOpenCircuitR;
INT16U DisplayZoneBoundary[11];
INT16U FuelCapacityBoundary[11];
}FuelStruct;
extern void InitFuelParamter(FuelStruct *para);
extern void SaveSampleVal(INT16U FuelResistance); //unit:ohm,accuracy:0.1
extern void FuelFSM(void);
extern void SetRPM(INT16U n); //Call only when the fuel is used,unit:RPM,accuracy:1
extern void SetSpeed(INT8U n); //Call only when the fuel is used,unit:km/h,accuracy:1
extern void SetFuelSensorRecoverGroupCnt(INT16U n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
extern void SetFuelSensorOpenCircuitGroupCnt(INT16U n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
extern void SetFuelSensorShortCircuitGroupCnt(INT16U n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
extern void SetPowerSt(INT8U n);
extern INT8U GetFuelSeg(void); //Segment, range:0~8
extern INT8U GetFuelStep(void); //Pointer or Mono TFT stepless,range:0,10~90, 0,10:E, 90:F
extern INT16U GetFuelCapacityVal(void); //unit:L,accuracy:0.1
extern void SetDisplayStepMinVal(INT8U n); //Set GetFuelStep() min val,range:0~80,default 10
extern void SetCalcResistanceRange(INT8U min, INT8U max); //Call this function after calling InitFuelParamter();
//Set the range of calculated resistance value, default:40-120, max number:240;
//ResistanceRange[0]:Sample resistance minimum,fuel high;
//ResistanceRange[239]:Sample resistance maximum, fuel low.
enum {
FuelSensorNormal,
FuelSensorShortCircuit,
FuelSensorOpenCircuit,
FuelSensorPreFault,
};
extern INT8U GetFuelSensorState(void);
enum {
FUEL_ST_FIRST_POWER_UP, //0
FUEL_ST_IGN_ON_PROCESS, //1
FUEL_ST_POWER_ON_ADD_FUEL, //2
FUEL_ST_VEHICLE_RUN, //3
FUEL_ST_IGN_OFF_PROCESS, //4
FUEL_ST_IGN_OFF, //5
};
extern INT8U GetFuelFSM_St(void);
extern INT16U GetFuelResistance(void); //unit:ohm,accuracy:0.1
extern INT8U GetPowerDn(void);
extern INT16U GetPowerDownTimeCnt(void);
// AFC & DrivingRange
typedef struct _AFC_INIT {
INT8U CalcAFCMaxNum; //max 100km,default 50
INT16U AFCMin; //unit:L,accuracy:0.1
INT16U AFCMax; //unit:L,accuracy:0.1
INT16U AFCPreinstall; //unit:L,accuracy:0.1
INT32U CurODO; // unit:m,accuracy:1
INT32U MaxDRMileage; //unit:km,accuracy:0.01
}AFC_INIT;
extern void InitAFC(AFC_INIT *data);
extern void ResetAFC(AFC_INIT *data);
typedef struct _AFC_PARA {
INT32U CurODO; // unit:m,accuracy:1
INT16U FuleConsume; // unit:ul,accuracy:1
INT16U RPM; // unit:RPM,accuracy:1
INT8U Speed; // unit:km/h,accuracy:1
}AFC_PARA;
extern void SetAFCPara(AFC_PARA *data);
extern void AFCTimerCall(void); //must per 10ms interrupt
extern INT16U GetDRMileage(void); //unit:km,accuracy:1
extern INT16U GetCurAFC(void); //unit:L,accuracy:0.1
extern INT16U GetAFCSumH(void);
extern INT16U GetAFCSumL(void);
#endif
This diff is collapsed.
/*
* APP_Data_Process.h
*
* Created on: 2012-3-27
* Author: qitiancun
*/
#ifdef GLOBALS_FUEL_PROCESS
#define EXTERN_FUEL_PROCESS
#else
#define EXTERN_FUEL_PROCESS extern
#endif
#ifndef FUEL_PROCESS_H_
#define FUEL_PROCESS_H_
#define FuelCompenstate 1*1024/50
EXTERN_FUEL_PROCESS void App_CalFuelEconomy(void);
EXTERN_FUEL_PROCESS void App_CalFuelBoard(void);
EXTERN_FUEL_PROCESS void App_CalFuelInit(void);
EXTERN_FUEL_PROCESS void App_FuelManage(void);
#endif /* APP_DATA_PROCESS_H_ */
/*
* gui_Display.c
*
* Created on: Aug 11, 2014
* Author: QTC
*/
#define GLOBALS_GUI_DIRKM
#include "defines.h"
#include "g_includes.h"
//const INTU8 LyrId[]={31, 32, 33, 34, 35};
/*-------------------------------------------------------------------------
* Function Name : GUI_DirKm_Disp
* Description :
* Input : None
* Output : None
* Return : None
* onther :
--------------------------------------------------------------------------*/
void Gui_DirKm_Disp(void)
{
INT8U len;
INT32U wTemp;
//续航里程
if((g_fuelEco.AveFuel > null) && (g_fuelEco.DriKm >= 510))
{
if(g_fuelEco.DriKm > 6990)
{
g_fuelEco.DriKm = 6990;
}
wTemp = g_fuelEco.DriKm / 10;
len = App_CalDataLen(wTemp);
DispText.Text[0] = (wTemp / 100) % 10;
DispText.Text[1] = (wTemp / 10) % 10;
DispText.Text[2] = wTemp % 10;
bsp_WDOG_Feed();
if(g_winUpdeta.bits.DirKmUp)
{
DirKm_UpdetaClr;
switch(len)
{
case 3:
Api_DrawIcon(72, 145, Api_Value_Get(DispText.Text[0], 14));
case 2:
Api_DrawIcon(88, 145, Api_Value_Get(DispText.Text[1], 14));
case 1:
Api_DrawIcon(104, 145, Api_Value_Get(DispText.Text[2], 14));
default:
;
}
switch(len + 1)
{
case 3:
Api_DrawImgIcon(72, 145, Api_Value_Get(10, 14));
default:
;
}
}
}
else
{
//续航里程不足,显示 --- km
if(g_winUpdeta.bits.DirKmUp)
{
DirKm_UpdetaClr;
Api_DrawImgIcon(72, 145, Api_Value_Get(10, 14));
Api_DrawImgIcon(88, 145, Api_Value_Get(10, 14));
Api_DrawImgIcon(104, 145, Api_Value_Get(10, 14));
}
}
}
/*
* gui_Display.h
*
* Created on: Aug 11, 2014
* Author: QTC
*/
#ifdef GLOBALS_GUI_DIRKM
#define EXTERN_GUI_DIRKM
#else
#define EXTERN_GUI_DIRKM extern
#endif
#ifndef GUI_DIRKM_H_
#define GUI_DIRKM_H_
EXTERN_GUI_DIRKM void Gui_DirKm_Disp(void);
#endif /* GUI_DIRKM_H_ */
/*
* gui_Display.c
*
* Created on: Aug 11, 2014
* Author: QTC
*/
#define GLOBALS_GUI_FUELDISP
#include "defines.h"
#include "g_includes.h"
/*-------------------------------------------------------------------------
* Function Name : Gui_Fuel_Disp
* Description :
* Input : None
* Output : None
* Return : None
* onther :
--------------------------------------------------------------------------*/
void Gui_Fuel_Disp(void)
{
if((g_FuelAlarm == Disable)&&(g_fuelMeter.BoardVal!=65535))
{
if((g_fuelMeter.CurPosition <= 20)&&(g_LED.CheckLightsTime >= T_3_5s))
{
Enable_signal(g_sysFlag.Bits.FuelLedEn);//ȼͱ
}
else if(((ConfigItem.FuelConfig==0) && g_fuelMeter.CurPosition>=25)||
((ConfigItem.FuelConfig==1) && g_fuelMeter.CurPosition>=23)||
((ConfigItem.FuelConfig==3) && g_fuelMeter.CurPosition>=24))
{
Disable_signal(g_sysFlag.Bits.FuelLedEn);//
}
}
}
\ No newline at end of file
/*
* gui_Display.h
*
* Created on: Aug 11, 2014
* Author: QTC
*/
#ifdef GLOBALS_GUI_FUELDISP
#define EXTERN_GUI_FUELDISP
#else
#define EXTERN_GUI_FUELDISP extern
#endif
#ifndef GUI_FUELDISP_H_
#define GUI_FUELDISP_H_
EXTERN_GUI_FUELDISP void Gui_Fuel_Disp(void);
#endif /* GUI_FUELECO_H_ */
This diff is collapsed.
/*
* gui_Home2nd.h
*
* Created on: Aug 11, 2014
* Author: QTC
*/
#ifdef GLOBALS_GUI_Home2nd
#define EXTERN_GUI_Home2nd
#else
#define EXTERN_GUI_Home2nd extern
#endif
#ifndef GUI_Home2nd_H_
#define GUI_Home2nd_H_
//--------- Style 1 ----------//
//̳ͺ + Adblue
EXTERN_GUI_Home2nd void GuiH2nd_InstFuelAbuEnter(void);
EXTERN_GUI_Home2nd void GuiH2nd_InstFuelAbuDo(void);
EXTERN_GUI_Home2nd void Gui_InstFuel_Disp(void);
EXTERN_GUI_Home2nd void GuiH2nd_InstFuelAbuExit(void);
//ƽͺ + Adblue
EXTERN_GUI_Home2nd void GuiH2nd_AvgFuelAbuEnter(void);
EXTERN_GUI_Home2nd void GuiH2nd_AvgFuelAbuDo(void);
EXTERN_GUI_Home2nd void Gui_AveFuel_Disp(void);
EXTERN_GUI_Home2nd void GuiH2nd_AvgFuelAbuExit(void);
//--------- Style 2 3 ----------//
//̳ͺ + Adblue/ѹ
EXTERN_GUI_Home2nd void Gui_Screen1_disp(void);
EXTERN_GUI_Home2nd void Gui_RealScreen1_disp(void);
//ƽͺ + Adblue/ѹ
EXTERN_GUI_Home2nd void Gui_Screen2_disp(void);
EXTERN_GUI_Home2nd void Gui_RealScreen2_disp(void);
#endif /* GUI_Home2nd_ */
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#ifndef _NM_USER_H_
#define _NM_USER_H_
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment