📄 spi0.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -