/* 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) 2022. 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. */ /****************************************************************************** * @version: V2.0.1 AC7840x Demo ******************************************************************************/ /*! * @file timer.c * * @brief This file contains the user function. * */ /* =========================================== Includes =========================================== */ #include "timer.h" #include "string.h" #include "timer_drv.h" #include "timer_hw.h" #include "process.h" /*!* @brief TIMER0中断回调函数 * * @param[in] none * @return none */ void TIMER0_Callback(void *device, uint32_t wpara, uint32_t lpara) { timer_callback(); } /*! * @brief TIMER初始化函数 * * @param[in] none * @return none *注意:timer时钟源在clock_config.c文件的peripheralClockConfig0结构体中第二个元素配置 */ void Timer_Init(void) { timer_user_channel_config_t timerConfig; memset(&timerConfig, 0U, sizeof(timerConfig)); /*TIMER参数配置*/ timerConfig.timerMode = TIMER_PERIODIC_COUNTER; /* 32bit计数 */ timerConfig.periodUnits = TIMER_PERIOD_UNITS_MICROSECONDS; /* 以us为单位计数 */ timerConfig.period = 10000U; /* 10ms为周期 */ timerConfig.triggerSource = TIMER_TRIGGER_SOURCE_INTERNAL; /* 选择内部触发 */ timerConfig.triggerSelect = 0x00U; /* 选择通道0作为触发源,触发是否奏效由TSOT决定,1:触发源上升沿来时开始计数;0:使能后就开始计数,触发源无效 */ timerConfig.enableReloadOnTrigger = false; /* 触发源来时不重新加载计数值 */ timerConfig.enableStopOnInterrupt = false; /* 发生一次中断后不停止Timer的计数 */ timerConfig.enableStartOnTrigger = false; /* 配置ENRx=1即会使Timer开始计数,该位决定触发源是否奏效 */ timerConfig.chainChannel = false; /* 禁能链接 */ timerConfig.isInterruptEnabled = true; /* 使能中断 */ timerConfig.callback = TIMER0_Callback; /* 回调函数配置 */ /*TIMER调用底层接口*/ TIMER_DRV_Init(0, true); TIMER_DRV_InitChannel(0, TIMER_CHANNEL_0, &timerConfig); NVIC_SetPriority(TIMER_CHANNEL0_IRQn, 3); /*! 设置SPI中断优先级 */ TIMER_DRV_StartChannels(0, 1 << TIMER_CHANNEL_0); }