spi0.c

来自「DSP56F800e HYBRID Controller」· C语言 代码 · 共 76 行

C
76
字号
#include "Headers.h"







UInt16 TX_BUFFER[BUFFER_LENGTH];
UWord8 headTx,tailTx;
unsigned int data='A',data1,data2;     //dummy






void initIsrSpi0()
{
	
		asm (bfclr #$0300,SR);		;		//permit toate tipurile de intrerupere
		asm (bfset #$0003,X:IPR5);  //intreruperea de transmisie pt spi0 are prioritatea 2
	    asm(bfclr  #$0020,X:ICTL); 
	
}


#pragma interrupt saveall 
void isrtSpi0TransmitterEmpty()
{
   UInt16 datan;

   enterCritical();


   
   GPIOA_DR |= 0x0004;
   GPIOA_DR ^= 0x0004;   
      
   asm(move.w  #$030F,X:SPI0_SPDTR);  //initiez o noua transmisie
    
   GPIOA_DR &= 0xFFF7;      
   GPIOA_DR ^= 0x0008;

 
      
   exitCritical();                              
}






void Spi0PinInit()

{ 
 
 asm(bfclr #$0010,X:GPIOE_PUR);  //semnalul GPIOE4 in modul master este iesire, clock de iesire 
 asm(bfset #$0010,X:GPIOE_PER);  //GPIOE4 - SCLK0
    
 asm(bfclr #$0020,X:GPIOE_PUR);  //semnalul GPIOE5 in modul master este iesire
 asm(bfset #$0020,X:GPIOE_PER);  //GPIOE5 - MOSI0
   
 asm(bfclr #$0040,X:GPIOE_PUR);  //semnalul GPIOE5  in modul master este intrare
 asm(bfset #$0040,X:GPIOE_PER);  //GPIOE6 - MOSI0  
   
 asm(bfset #$0080,X:GPIOE_PER);  //GPIOE7 - SSn    
   
 asm(bfset #$0004,X:SIM_PCE);         //activez clockul pentru modulul SPI0
          	       //activez clockul pentru modulul SPI0
   
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?