|
|
利用中断的方式通过SPI0发送数据,为什么总是进不了中断?
主函数:
void Main(void)
{
int i;
int data[3]={0x0df,0x0bf,0x7f};
U32 mpll_val = (92<<12)|(4<<4)|(1);
U32 k;
ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);// FCLK=202.8MHz
ChangeClockDivider(12, 12);// 1:2:4
cal_cpu_bus_clk();
SPI_Init();
IO_Init();
Uart_Init(0,115200);
Uart_Select(0);
SPI0_Interrupt_Init();
SPI_Init();
Isr_Init();
while(!(rSPSTA0&0x01));
Uart_Printf("\n S3C2440 SPI COMMUNICATION TEST!\n");
rSPTDAT0=0xdf;
Uart_Printf("rSPSTA0 is %d\n",rSPSTA0);
}
SPI0_Interrupt_Init()函数
void SPI0_Interrupt_Init(void)
{
rINTMSK &= ~(1 << 22) ;
}
SPI_Init()函数:
void SPI_Init(void)
{
rGPECON=(2<<26)|(2<<24)|(2<<22);
rGPEUP&=0x0C7FF;
rGPGCON=(3<<14)|(3<<12)|(3<<10)|(3<<6)|(1<<4);
rGPGUP&=0x0FF13;
rSPPRE0=PCLK/2/ucSpiBaud-1;
rSPCON0=(1<<5)|(1<<4)|(1<<3)|(0<<2)|(0<<1)|(0<<0);
// rSPPRE1=PCLK/2/ucSpiBaud-1;
// rSPCON1=(0<<5)|(1<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0);
rSPPIN0=(0<<2)|(1<<1)|(0<<0);
// rSPPIN1=(0<<2)|(1<<1)|(0<<0);
rGPGDAT&=0x0FFFB;
}
|
|