原创 初始化SPI 和 中断

2010-2-28 08:24 3377 10 10 分类: MCU/ 嵌入式

 


点击看大图


//------------------------------------------------- ini  SPI
    SSPCON1bits.SSPEN = 0 ;  //disable SPI    
    SSPCON1 =0x31 ;   //SPI Master, Idle high, Fosc/16  空闲状态时,时钟为高电平
    SSPCON1bits.SSPEN = 1 ; // enable SPI  
    SSPSTATbits.CKE = 1;    //1  =  当时钟从有效状态转换到空闲状态时开始发送
    SSPSTATbits.SMP = 1;    //1  =  在数据输出时间的末端采样输入数据
    TRISCbits.TRISC5 = 0;  // SDO
    TRISCbits.TRISC3 = 0;  // SCK
    TRISCbits.TRISC4 = 1;  // SDI
    PIR1bits.SSPIF = 0 ;  // clear interrupt flag
    PIE1bits.SSPIE =1 ;  // SSP int enable (BANK 1)
    IPR1bits.SSPIP = 1;    //High priority


//------------------------------------------------------------------------


// High priority interrupt routine   */


#pragma code
#pragma interrupt InterruptHandlerHigh


void
InterruptHandlerHigh ()
{
if(PIR1bits.SSPIF)
 {
  PIR1bits.SSPIF = 0;
  RxDataBuf[PSIcnt++] = SSPBUF;
                if (PSIcnt < 8)              // 如果发了8个,退出,不再发
  SSPBUF = TxDataBuf[PSIcnt++]; 


 }


}


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


//spi    ini


   SSPCON1bits.SSPEN = 0 ;  //disable SPI    
    SSPCON1 =0x32 ;   //SPI Master, Idle high, Fosc/16  空闲状态时,时钟为高电平
    SSPCON1bits.SSPEN = 1 ; // enable SPI  
    SSPSTATbits.CKE = 1;    //1  =  当时钟从有效状态转换到空闲状态时开始发送
    SSPSTATbits.SMP = 1;    //1  =  在数据输出时间的末端采样输入数据
    TRISCbits.TRISC5 = 0;  // SDO
    TRISCbits.TRISC3 = 0;  // SCK
    TRISCbits.TRISC4 = 1;  // SDI
    PIR1bits.SSPIF = 0 ;  // clear interrupt flag
  //  PIE1bits.SSPIE =1 ;  // SSP int enable (BANK 1)
    IPR1bits.SSPIP = 1;    //High priority


 #include "p18f4520.h"
#include "main.h"
#include "delays.h"
#include "interrupt.h"
//********************************主函数*************************************  不用中断 测试
#pragma code
void
main ()
{
unsigned char i,j;
Initialization();   //系统初始化
SSPBUF = 0x66;  
j= 0;
while(1)
{
if(PIR1bits.SSPIF)
 {
  PIR1bits.SSPIF = 0;
  i=SSPBUF;
      j++;
     SSPBUF = j;
 }   
Nop();


}


}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条