235 lines
7.3 KiB
C
235 lines
7.3 KiB
C
/***********************************************************************************************************************
|
||
* DISCLAIMER
|
||
* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
|
||
* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
|
||
* applicable laws, including copyright laws.
|
||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
|
||
* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||
* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
|
||
* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
|
||
* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
|
||
* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||
* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
|
||
* of this software. By using this software, you agree to the additional terms and conditions found by accessing the
|
||
* following link:
|
||
* http://www.renesas.com/disclaimer
|
||
*
|
||
* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved.
|
||
***********************************************************************************************************************/
|
||
|
||
/***********************************************************************************************************************
|
||
* File Name : r_main.c
|
||
* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015]
|
||
* Device(s) : R5F10BLG
|
||
* Tool-Chain : CA78K0R
|
||
* Description : This file implements main function.
|
||
* Creation Date: 2017/7/4
|
||
***********************************************************************************************************************/
|
||
|
||
/***********************************************************************************************************************
|
||
Pragma directive
|
||
***********************************************************************************************************************/
|
||
/* Start user code for pragma. Do not edit comment generated here */
|
||
/* End user code. Do not edit comment generated here */
|
||
|
||
/***********************************************************************************************************************
|
||
Includes
|
||
***********************************************************************************************************************/
|
||
#include "boot_macrodriver.h"
|
||
#include "boot_cgc.h"
|
||
#include "boot_port.h"
|
||
#include "boot_timer.h"
|
||
#include "boot_wdt.h"
|
||
/* Start user code for include. Do not edit comment generated here */
|
||
#include "r_rl78_can_drv.h"
|
||
#include "r_rl78_can_sfr.h"
|
||
#include "RL78_RCAN.h"
|
||
#include "boot_can_user.h"
|
||
#include "api.h"
|
||
#include "Dcm_extern.h"
|
||
#include "pfdl_user.h"
|
||
#include "CanTp.h"
|
||
#include "ftable.h"
|
||
#include "boot_adc.h"
|
||
#include "Dcm_App.h"
|
||
/* End user code. Do not edit comment generated here */
|
||
#include "boot_userdefine.h"
|
||
#include "CanTp_Cfg.h"
|
||
|
||
/***********************************************************************************************************************
|
||
Global variables and functions
|
||
***********************************************************************************************************************/
|
||
/* Start user code for global. Do not edit comment generated here */
|
||
#pragma section @@DATA KAM_SEG
|
||
KamData_t KamData;
|
||
#pragma section @@DATA @@DATA
|
||
|
||
#pragma section @@DATA FslSeg
|
||
uint8_t fsl_code_buf[0x480];
|
||
#pragma section @@DATA @@DATA
|
||
|
||
uint16 ADval_Power;
|
||
uint16 AdcSample(uint8 ch) ;
|
||
void AdScan(void);
|
||
|
||
/* End user code. Do not edit comment generated here */
|
||
void Boot_MAIN_UserInit(void);
|
||
void IGN_Scan(void);
|
||
extern unsigned char flag_100ms;
|
||
unsigned char time,IGN_State;
|
||
#define CAN_STB P1.2
|
||
/***********************************************************************************************************************
|
||
* Function Name: main
|
||
* Description : This function implements main function.
|
||
* Arguments : None
|
||
* Return Value : None
|
||
***********************************************************************************************************************/
|
||
void boot_main(void)
|
||
{
|
||
uint8 i;
|
||
Boot_MAIN_UserInit();
|
||
/* Start user code. Do not edit comment generated here */
|
||
Boot_TAU0_Channel4_Start();
|
||
R_ADC_Start();
|
||
R_ADC_Set_OperationOn();
|
||
//P3.0 = 1; // <20><><EFBFBD><EFBFBD>AD_Bat
|
||
CAN_STB = 0;
|
||
if(KamData.boot_enable != RPRGRM_REQ_VALID)
|
||
{
|
||
if((GetAppValid() == APP_VALID)&&(GetAppEndValid() == APP_VALID))
|
||
{
|
||
DI();
|
||
Boot_TAU0_Channel4_Stop();
|
||
KamData.boot_enable = 0;
|
||
KamData.RunAir = RUN_IN_APP;
|
||
while(1)
|
||
{
|
||
((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE)))();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
KamData.RunAir = RUN_IN_BOOT;
|
||
InitCanTp_Parameter();
|
||
InitDcm_Parameter();
|
||
Boot_CAN_Pin_init();
|
||
CanUserInit();
|
||
BootDefaultSessionDeal();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
KamData.RunAir = RUN_IN_BOOT;
|
||
InitCanTp_Parameter();
|
||
InitDcm_Parameter();
|
||
Boot_CAN_Pin_init();
|
||
CanUserInit();
|
||
|
||
BootProgramSessionDeal();
|
||
|
||
}
|
||
#if 0
|
||
if(KamData.boot_enable == RPRGRM_REQ_VALID)
|
||
{
|
||
SetCanTp_TxBuffer(KamData.RspData[0],&KamData.RspData[1]);
|
||
}
|
||
#endif
|
||
if(KamData.AckReq == ACK_REQ)
|
||
{
|
||
TransmitCAN_Message(CANTP_RESP_CANID,8,&KamData.RspData[0]);
|
||
KamData.AckReq = 0;
|
||
}
|
||
while (1U)
|
||
{
|
||
Boot_WDT_Restart();
|
||
MngDcm_1ms_Sever();
|
||
i++;
|
||
if(i>100)
|
||
{
|
||
AdScan();
|
||
IGN_Scan();
|
||
i=0;
|
||
}
|
||
}
|
||
|
||
/* End user code. Do not edit comment generated here */
|
||
}
|
||
|
||
/***********************************************************************************************************************
|
||
* Function Name: Boot_MAIN_UserInit
|
||
* Description : This function adds user code before implementing main function.
|
||
* Arguments : None
|
||
* Return Value : None
|
||
***********************************************************************************************************************/
|
||
void Boot_MAIN_UserInit(void)
|
||
{
|
||
/* Start user code. Do not edit comment generated here */
|
||
KamData.RstSrc = RESF;
|
||
if(KamData.RstSrc != WDT_RST)
|
||
{
|
||
KamData.boot_enable = 0;
|
||
KamData.RunAir = RUN_IN_BOOT;
|
||
KamData.AckReq = 0;
|
||
}
|
||
EI();
|
||
/* End user code. Do not edit comment generated here */
|
||
}
|
||
|
||
/* Start user code for adding. Do not edit comment generated here */
|
||
void Boot_CAN_Pin_init(void)
|
||
{
|
||
PM1.0 = 0;
|
||
P1.0 = 1;
|
||
PM1.1 = 1;
|
||
|
||
//PM1.3 = 0;//OUTPUT
|
||
CAN_STB = 0;
|
||
}
|
||
|
||
uint16 AdcSample(uint8 ch)
|
||
{
|
||
uint16 u2Temp;
|
||
ADS = ch; //ģ<><C4A3>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||
ADCS = 1; // A/Dת<44><D7AA><EFBFBD><EFBFBD><EFBFBD>еĿ<D0B5><C4BF>ƣ<EFBFBD>1Ϊ<31><CEAA><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
while(!ADIF); //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
||
u2Temp = ADCR>>6; //10 λ A/D ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||
ADCS = 0;
|
||
ADIF = 0;
|
||
return u2Temp;
|
||
}
|
||
|
||
void AdScan(void)
|
||
{
|
||
static uint8 FilterCounter;
|
||
static uint16 AD_temp[5];
|
||
uint8 i;
|
||
uint16 AD_cal=0;
|
||
AD_temp[FilterCounter] = AdcSample(0);
|
||
FilterCounter++;
|
||
if(FilterCounter >= 5)FilterCounter=0;
|
||
for(i=0;i<5;i++)
|
||
{
|
||
AD_cal += AD_temp[i];
|
||
}
|
||
//ADval_Power = AD_cal/5;
|
||
ADval_Power = 350;
|
||
}
|
||
|
||
|
||
void IGN_Scan(void)
|
||
{
|
||
/*
|
||
if(P1.7 == 1)
|
||
{
|
||
IGN_State = 0;
|
||
}
|
||
else
|
||
{
|
||
IGN_State = 1;
|
||
}
|
||
*/
|
||
IGN_State = 1;
|
||
}
|
||
|
||
/* End user code. Do not edit comment generated here */
|