您的位置:
OpenADSP社区论坛
->
Blackfin专区
->
新手上路
-> SPI0溢出中断问题。
本帖共有
454
个阅读者
SPI0溢出中断问题。
Ling_Zero00
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
37
金钱:
436
积分:
50
注册时间:
2014/9/16
小
大
楼主
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
SPI0溢出中断问题。
请问,如何开SPI0的溢出中断源,以及中断结束后如何清中断标志位。我没找到相应的寄存器。
ADSP
等级:
2014/11/12 10:42:38
编辑帖子
帖子评价
单帖屏蔽
删除帖子
andy
(论坛版主)
头衔:
社区公民
帮派:
无帮无派
帖数:
2287
金钱:
11132
积分:
2263
注册时间:
2011/6/8
小
大
第
1
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
在VDSP帮助文件中,找到相应处理器的中断配置相关的表 ,叫Peripheral Interrupt Events,以BF518为例,在中断向量表中,可以看到
SPI0 status 中断,位于
SIC_IAR5[27:24] ,
SIC_IMASK1的
Bit 15,按通用的中断配置方式打开即可。当进入中断后,读取SPI状态寄存器,判断是否为溢出。
进入中断后,将
SPI_STAT 相应的位写1,即可清除中断标志
这家伙很懒,什么也没有留下!
等级:
2014/11/12 22:09:00
编辑帖子
帖子评价
单帖屏蔽
删除帖子
Ling_Zero00
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
37
金钱:
436
积分:
50
注册时间:
2014/9/16
小
大
第
2
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
我
还是不太明白,比如定时器中断,当设置寄存器使得一个周期后中断,实际运行时就是当一个周期的下降沿开始后自动进入中断程序。SPI为什么还要读判断是否为溢出呢?当设置控制寄存器的[1:0]TIMOD时选的为01即:以写SPI_TDBR开始传输,当SPI_TDBR为空时产生中断,寄存器写时先将数据放到缓存寄存器中SPI_TDBR,当数据传输时SPI_TDBR中的数据放到移位寄存器中,此时SPI_TDBR中为空,就会跳到中断程序中不是吗?
ADSP
等级:
2014/11/12 22:59:39
编辑帖子
帖子评价
单帖屏蔽
删除帖子
andy
(论坛版主)
头衔:
社区公民
帮派:
无帮无派
帖数:
2287
金钱:
11132
积分:
2263
注册时间:
2011/6/8
小
大
第
3
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
定时器中断和SPI中断没有任何关系,如果设置SPI传输中断,当传输FIFO中的数据发送完毕后,就会产生中断。
如果你看到的官方代码有定时器,那是用于判断超时操作的,防止代码死在判断SPI传输或者接收部分。
这家伙很懒,什么也没有留下!
等级:
2014/11/18 21:45:09
编辑帖子
帖子评价
单帖屏蔽
删除帖子
Powered by
OpenADSP
Copyright © 2010
www.
Openadsp
.com
. All rights reserved.159138 Call, 1 Queries, Processed in 0.015625 second(s),