/*
 * timer.h
 *
 *  Created on: 20211210
 *      Author: Administrator
 */

#ifndef HARDWARE_INC_TIMER_H_
#define HARDWARE_INC_TIMER_H_

#include "string.h"
#include "stdlib.h"
#include "stdio.h"
#include "system.h"
#include "alt_types.h"
#include "altera_avalon_timer_regs.h"
#include "sys/alt_irq.h"

#define ITO_MSK  0x1 //ʱж
#define START_MSK 0x2 //ڲ
#define CONT_MSK 0x4 //üʽΪ
#define STOP_MSK 0x8 //ֹͣڲ

#define Timer_TRUE	1
#define Timer_FALSE	0

#define Timer_Period  0x1DCD64FF//ʱ1ms0.001*ʱƵ -1=0.001*25M-1=0x0000_61a7

typedef void *TIMER_HANDLE;
typedef struct{
	alt_u32 timer_base;
	alt_u32 timer_ic_id;
	alt_u32 timer_irq;
}CoreCourse_TIMER;

TIMER_HANDLE Timer_Init(
			const alt_u32 timer_base,
			const alt_u32 timer_ic_id,
			const alt_u32 timer_irq
			);

alt_isr_func Timer_isr(void* context, alt_u32 id);

#endif /* HARDWARE_INC_TIMER_H_ */
