
/* Copyright Statement:
 *
 * This software/firmware and related documentation ("AutoChips Software") are
 * protected under relevant copyright laws. The information contained herein is
 * confidential and proprietary to AutoChips Inc. and/or its licensors. Without
 * the prior written permission of AutoChips inc. and/or its licensors,  any
 * reproduction,  modification,  use or disclosure of AutoChips Software,  and
 * information contained herein,  in whole or in part,  shall be strictly
 * prohibited.
 *
 * AutoChips Inc. (C) 2023. All rights reserved.
 *
 * BY OPENING THIS FILE,  RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
 * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("AUTOCHIPS SOFTWARE")
 * RECEIVED FROM AUTOCHIPS AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
 * ON AN "AS-IS" BASIS ONLY. AUTOCHIPS EXPRESSLY DISCLAIMS ANY AND ALL
 * WARRANTIES,  EXPRESS OR IMPLIED,  INCLUDING BUT NOT LIMITED TO THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY,  FITNESS FOR A PARTICULAR PURPOSE OR
 * NONINFRINGEMENT. NEITHER DOES AUTOCHIPS PROVIDE ANY WARRANTY WHATSOEVER WITH
 * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
 * INCORPORATED IN,  OR SUPPLIED WITH THE AUTOCHIPS SOFTWARE,  AND RECEIVER AGREES
 * TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
 * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
 * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN AUTOCHIPS
 * SOFTWARE. AUTOCHIPS SHALL ALSO NOT BE RESPONSIBLE FOR ANY AUTOCHIPS SOFTWARE
 * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
 * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND AUTOCHIPS'S
 * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE AUTOCHIPS SOFTWARE
 * RELEASED HEREUNDER WILL BE,  AT AUTOCHIPS'S OPTION,  TO REVISE OR REPLACE THE
 * AUTOCHIPS SOFTWARE AT ISSUE,  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
 * CHARGE PAID BY RECEIVER TO AUTOCHIPS FOR SUCH AUTOCHIPS SOFTWARE AT ISSUE.
 */

/*************<start>******************/


/*************<include>****************/
#include "string.h"
#include "timer.h"
#include "gpio.h"
#include "i2c_at24c02.h"

/*************<macro>******************/


/*************<enum>*******************/


/*************<union>******************/


/*************<struct>*****************/


/*************<variable>***************/


/*************<prototype>**************/
void TIM_CHN2_Callback(void *device, uint32_t wpara, uint32_t lpara);

/**
* @prototype TIMER_PrdInit(void)
*
* @param[in] void
* @return    void
*
* @brief     Initialize Timer Channel 2.
*/
void TIMER_PrdInit(void)
{
    TIMER_ConfigType tmrConfig;

    /*Zeroing variables.*/
    memset(&tmrConfig, 0x00, sizeof(tmrConfig));

    /*Configure Timer.*/
    tmrConfig.chainModeEn   = DISABLE;
    tmrConfig.interruptEn   = ENABLE;
    tmrConfig.periodValue   = TIM_CHN2_PRD_1ms;
    tmrConfig.bypEn         = ENABLE;
    tmrConfig.callback      = TIM_CHN2_Callback;

    TIMER_Init(TIMER_CLKSR_HSE);
    TIMER_InitChannel(TIMER_CHANNEL2, &tmrConfig);
}

/**
* @prototype TIM_CHN2_Callback(void *device, uint32_t wpara, uint32_t lpara)
*
* @param[in] ...
* @return    void
*
* @brief     Timer channel 2 interrupt callback function.
*/
void TIM_CHN2_Callback(void *device, uint32_t wpara, uint32_t lpara)
{
    if (g_scanKeyTime < 0xFF)
    {
        g_scanKeyTime++;
    }

    if (g_eepromWrRdRdy)
    {
        g_eepromWrRdTime++;
    }
}

/*************<end>********************/
