打印
[ZLG-ARM]

为何SPI中断只进入一次

[复制链接]
2529|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoxin1986|  楼主 | 2010-1-6 00:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
spi, ic, se, pc, vi
我想实现的目标是让SPI连续输出几个字节的数据,但下列程序在MagicARM2200上仿真结果,是IRQ——SPI中断只进入过一次,最后变量a的值为1。不知我的程序在哪些地方存在问题啊。请各位帮忙解答一下!谢谢!
#include  "config.h"
uint32 a;
void __irq IRQ_SPI (void)   /*SPI中断服务程序*/
{
if (++a < 3) S0PDR = 0x44;
S0PINT = 0x01;    /* 清除中断标志         */
VICVectAddr = 0x00;   /* 通知VIC中断处理结束       */
}

int main (void)
{  
a = 0;
PINSEL0 = 0x00005500;                   // 设置SPI管脚连接
PINSEL1 = 0x00000000;
SPCCR = 0x52;                               // 设置SPI时钟分频
SPCR  = (0 << 3) |                          // CPHA = 0, 数据在SCK 的第一个时钟沿采样
   (1 << 4) |                                    // CPOL = 1, SCK 为低有效
   (1 << 5) |                                    // MSTR = 1, SPI 处于主模式
   (0 << 6) |                                    // LSBF = 0, SPI 数据传输MSB (位7)在先
   (1 << 7);                                     // SPIE = 0, SPI 中断被使能

IRQEnable();                                  /* IRQ中断使能   */
/* 设置SPI中断IRQ */
VICIntSelect = 0x00;                      /* 所有中断通道设置为IRQ中断   */
VICVectCntl5 = 0x20 | 0x0A;          /* 设置SPI中断通道分配最高优先级 */
VICVectAddr5 = (uint32)IRQ_SPI;    /* 设置中断服务程序地址     */
VICIntEnable = 1 << 0x0A;             /* 使能SPI中断      */

S0PDR = 0x33;                             /*随意发送数据*/
while (1);
return 0;
}

相关帖子

沙发
loveforever| | 2010-1-6 19:06 | 只看该作者
没看懂,
等高手老解决,
帮顶。

使用特权

评论回复
板凳
午夜粪车| | 2010-1-6 19:07 | 只看该作者
老解决是啥意思?

使用特权

评论回复
地板
6019赵文| | 2010-1-6 23:23 | 只看该作者
呵呵,咬文嚼字!
不好意思,看不懂

使用特权

评论回复
5
贾君鹏子| | 2010-1-7 22:34 | 只看该作者
来解决嘛,别瞎起哄

使用特权

评论回复
6
sunmooning| | 2010-1-8 20:55 | 只看该作者
我想是不是你忘了将中断标志位清0啊

使用特权

评论回复
7
sunmooning| | 2010-1-15 22:02 | 只看该作者
这么多天,也没个消息,不知道解决没解决啊?

使用特权

评论回复
8
zlgARM| | 2010-1-15 22:18 | 只看该作者
xiaoxin1986您好:
    您的程序:在S0PDR = 0x33;  后启动发送,然后就是while(1);肯定是只进入一次中断程序的。你想连续进入中断有两种方法:一是将S0PDR = 0x33写入while(1)里面,即:while(1){S0PDR = 0x33;}最好在加入些延时;二是将S0PINT = 0x01;语句放在中断服务函数的第一句。 但是第二种方法我没有测试过,不能保证100%正确,您可以测试一下。

使用特权

评论回复
9
juventus9554| | 2010-1-15 22:40 | 只看该作者
哇塞,楼主你好友面子啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝