?? spi.c
字號:
#include "MC68HC908JW32.h" /* include peripheral declarations */
#include "spi.h"
//#define GDO0_PIN PTA_PTA3 //input
#define GDO2_PIN PTA_PTA4 //input
#define CC2500_MISO PTE_PTE6 // Master In / Slave Out (input)
#define CC2500_MOSI PTE_PTE5 // Master Out / Slave In (output)
#define CC2500_SCK PTE_PTE4 // Serial Clock (output)
#define CC2500_NCS PTA_PTA5 // Slave Select (output to chip select)
unsigned char ReturnData;
//-------------------------------------------------------------------
// SPI module Initialisation
//
// Description:
// Enable CPHA=1 and CPOL=1 master mode.
// Example:
// SPI_EN();
//-------------------------------------------------------------------
void SPI_Master_EN(void) {
SPCR_SPMSTR=1;
SPSCR= 0;//SPSCR_SPR0_MASK+
//SPSCR_SPR1_MASK;
SPCR_CPHA=0;
SPCR_CPOL=0;
SPCR_SPE=1;
//SPSCR = 0x03;
//SPCR = 0x22; // 1<<b_SPMSTR|1<<b_CPOL|1<<b_CPHA|1<<b_SPE;
}
//-------------------------------------------------------------------
// SPI Write byte-wise data
//-------------------------------------------------------------------
void SPIPut(byte Data) {
unsigned char dum;
while (!CheckBit(SPSCR, b_SPTE)); // SPTE=1?
SPDR = Data;
while (!CheckBit(SPSCR, b_SPTE)); // SPTE=1?
while (!CheckBit(SPSCR, b_SPRF)); // SPRF=1?
dum = SPDR;
while (!CheckBit(SPSCR, b_SPTE)); // SPTE=1?
}
//-------------------------------------------------------------------
// SPI Read byte-wise data
//-------------------------------------------------------------------
byte SPIGet() {
while (!CheckBit(SPSCR, b_SPTE)); // SPTE=1?
SPDR = 0xFF;
while (!CheckBit(SPSCR, b_SPTE)); // SPTE=1?
while (!CheckBit(SPSCR, b_SPRF)); // SPRF=1?
ReturnData = SPDR;
while (!CheckBit(SPSCR, b_SPTE)); // SPTE=1?
return ReturnData;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -