昊芯RISC-V(HXS320F28027PT)定时器

今日头条

1106人已加入

描述

1.昊芯RISC-V定时器

导语:

Haawking IDE 新建RISC-V

2.建立Timer0驱动文件timer0_base

HX_EXAM_DSC28027_CpuTimer_V0.0.1\src\下建立timer0_base.c timer0_base.h文件

RISC-V

 

3.timer0_base.c中编写Tiimer0驱动

timer0timer0Base={0,0};

 

INTERRUPT voidcpu_timer0_isr(void);

 

 

/******************************************************************

函数名:Timer0_init()

数:无

返回值:无

用:定时器0初始化-1ms 周期

明:

******************************************************************/

voidTimer0_init()

{

InitCpuTimers(); //中断配置步骤-----1,开启模块中断使能,位于 Timer->RegsAddr->TCR.bit.TIE = 1;

ConfigCpuTimer(&CpuTimer0, 120, 60000); //12MHz,1000us ,即为 1ms中断周期

CpuTimer0Regs.TPR.bit.TDDR= 10000;

CpuTimer0Regs.TCR.bit.TIE= 1; //使能中断

CpuTimer0Regs.TCR.bit.TSS= 0; // To start or restart the CPU-timer, set TSS to 0

//中断配置步骤-----2,重映射中断服务函数

// Interrupts that are used in this example are re-mapped to

// ISR functions found within this file.

EALLOW;

PieVectTable.TINT0= &cpu_timer0_isr;

EDIS;

//中断配置步骤-----3,连接CPU中断Y

IER_ENABLE(M_INT1);

//中断配置步骤-----4,连接Y中断里的第几位

PieCtrlRegs.PIEIER1.bit.INTx7= 1;

}

 

//CPU 定时器0 中断服务函数

INTERRUPT voidcpu_timer0_isr(void)

{

timer0Base.msCounter++;

timer0Base.Mark_Para.Status_Bits.OnemsdFlag= 1;

 

// Acknowledge this interrupt to receive more interrupts from group 1

EALLOW;

PieCtrlRegs.PIEACK.all= PIEACK_GROUP1;

EDIS;

}

4.编译和下载

点击编译、编译完成后点击下载

RISC-V

5.实机运行效果

 

 

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
h1654155764.5398 2021-08-21
0 回复 举报
好的资料,学习了,谢谢! 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分