1 /* 2 * Copyright (c) 2006-2018, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * first version 9 */ 10 // Ӳ����ʱ��ͷ�ļ� 11 12 13 #ifndef __OPENLOONGSON_TIMER_H 14 #define __OPENLOONGSON_TIMER_H 15 16 17 #include "ls1c_public.h" 18 19 20 // Ӳ����ʱ�� 21 typedef enum 22 { 23 TIMER_PWM0, // PWM0����Ӳ����ʱ�� 24 TIMER_PWM1, // PWM1����Ӳ����ʱ�� 25 TIMER_PWM2, // PWM2����Ӳ����ʱ�� 26 TIMER_PWM3 // PWM3����Ӳ����ʱ�� 27 }ls1c_timer_t; 28 29 30 // Ӳ����ʱ����Ϣ 31 typedef struct 32 { 33 ls1c_timer_t timer; // Ӳ����ʱ�� 34 unsigned long time_ns; // �Ͷ�ʱʱ�� 35 unsigned long time_h_ns; // �߶�ʱʱ�� 36 }timer_info_t; 37 38 /* 39 * ��ʼ����ʱ��������ʼ��ʱ 40 * @timer_info ��ʱ���Ͷ�ʱʱ����Ϣ 41 */ 42 void timer_init(timer_info_t *timer_info); 43 44 /* 45 * �ж�ָ����ʱ���Ƿ�ʱ 46 * @timer_info ��ʱ�� 47 * @ret TRUE or FALSE 48 */ 49 BOOL timer_is_time_out(timer_info_t *timer_info); 50 51 /* 52 * ֹͣ��ʱ�� 53 * @timer_info ��ʱ�� 54 */ 55 void timer_stop(timer_info_t *timer_info); 56 57 /* 58 * ��ȡ��ʱ���ӳ�ʼ�������ڵ�ʱ��(ʵ�ּ�ʱ����)����λns 59 * @timer_info Ӳ����ʱ�� 60 * @ret ʱ�䣬��λns 61 */ 62 unsigned long timer_get_time_ns(timer_info_t *timer_info); 63 64 /* 65 * ��ӡtimer��ؼĴ�����ֵ 66 * @timer_info Ӳ����ʱ�� 67 */ 68 void timer_print_regs(timer_info_t *timer_info); 69 70 /* 71 * ��ʱ���ж��� 72 * @timer_info ��ʱ����Ϣ 73 */ 74 void timer_int_clr(timer_info_t *timer_info); 75 76 /* 77 * ��ʱ�������� 78 * @timer_info ��ʱ����Ϣ 79 */ 80 void timer_cnt_clr(timer_info_t *timer_info); 81 82 /* 83 * ��ʼ����ʱ��������ʼ�ж϶�ʱ 84 * @timer_info ��ʱ���Ͷ�ʱʱ����Ϣ 85 * @hrc ���ж� lrc ���ж� Ϊ1��Ϊ0�ر� 86 */ 87 void timer_int_init(timer_info_t *timer_info, int hrc, int lrc); 88 #endif 89 90