关于xilinx的软核microblaze的两个问题。

关于xilinx的软核microblaze的两个问题。,第1张

1.数据总线的名字忘了 xilinx官网上下载一个microblaze的datasheet 里面有结构图 有名字

使用外部引脚需要添加GPIO IP核 在GUI里设置总线连接 具体看下GPIO的datasheet

2.中断专门有个中断控制器的IP核 需要添加一个 在中断控制器里面可以设置中断优先级什么的

其配套API函数 可以设置中断服务程序 比如计数器的中断执行计数器中断服务子函数 看门狗执行

看门狗中断服务子程序

keil定时器中断设置时间的方法:

1、配置TMOD确定工作方式

2、设定定时器定时时间,并给给定时器TO赋值 TH0=? TL0=?

注:比如定时器定时时间设置为20Ms=0.02s,且定时器工作在方式一的模式下,即16位定时器由X* 12 / 11059200=0.02得到X=18432,则定时器初值Y=2^16- 18432 = 65536- 18432 = 47104转.化为十六进制就是0xB800则

TH0= 0xB8 TL0= 0x00

3、设置TCON,通过给TRO置1启动定时器T0;

4、判断TCON寄存器的TF0位是否溢出。

1.利用定时器公式计算出TIMx_ARR(计数个数(自动重载寄存器(TIMx_ARR)))和TIMx_psc(分频系数)(例如:72Mhz  ARR=9999,PSC=7199)

2.初始化定时器:TIM_TimeBaseInit()

3.打开时钟RCC

4.清除标志位 :TIM_ClearFlag()   (时间由高电平到低电平)

5.使能定时器:TIM_Cmd()  (打开定时器)

6.判断是否定时完毕:TIM_GetFlagStatus()  (判断是否高电平)

例如:

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7,ENABLE)//打开TIM6的外设时钟  改时钟在这里改,改成要求的时钟

TIM_TimeBaseStructure.TIM_Prescaler = 4799

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up//向上计数    改计数模式在这里改  改为  TIM_CounterMode_Down  向下计数

TIM_TimeBaseStructure.TIM_Period = 1999//秒数在这里改  0.5秒对应4999  1秒对应9999  两秒对应19999

TIM_TimeBaseInit(TIM7,&TIM_TimeBaseStructure)//这里改为对应的TIM

TIM_ClearFlag(TIM7, TIM_FLAG_Update)//这里改为对应的TIM

TIM_ITConfig(TIM7, TIM_IT_Update,ENABLE)//这里改为对应的TIM使能定时器中断

TIM_Cmd(TIM7, ENABLE)//使能或者失能TIMx外设

TIM_GetFlagStatus(TIM7, TIM_FLAG_Update)//检查指定的TIM标志位设置与否

注意:main.c文件中一定要添加头文件名   #include"stm32f10x.h"

1.设置外部中断初始化函数 :EXTI_Init()

2.打开复用功能时钟(AFIO)(AFIO属于APB2)

3.设置管脚中断函数:GPIO_EXTILineConfig()

4.设置优先级初始化函数NVIC_Config()

5.设置中断信号输入管脚初始化函数:GPIO_con()

6.编写中断服务函数

中断服务函数列表:

1.EXTI0_IRQHandler

2.EXTI2_IRQHandler

3.EXTI3_IRQHandler

4.EXTI4_IRQHandler

5.EXTI9_5_IRQHandler

1.EXTI15_10_IRQHandler


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11886765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存