• slider image 442
  • slider image 497
  • slider image 498
  • slider image 499
  • slider image 500
  • slider image 502
:::


Browsing this Thread:   2 Anonymous Users






關於2塊DSPIC30F4011作SPI傳輸
#1
高級會員
高級會員


查看用戶資訊
它的動作是master丟一個值到slave
slave 在把數值用PORTB腳位以LED方式顯示出來
會做這樣簡單的動作是想讓自己了解SPI的傳輸條件
可是他失敗了 煩請各位板大先進解惑

以下是程式MASTER:
#include <p30F4011.h>
#include <timer.h>
#include "spi.h"

#define FCY 7372800*2
#define SPI_CS PORTEbits.RE3
#define DIR_SPI_CS TRISEbits.TRISE3
#define MODE_SPI_CS ADPCFGbits.PCFG3

_FOSC(CSW_FSCM_OFF & XT_PLL8);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN);
_FGS(CODE_PROT_OFF);
unsigned long int i;
void __attribute__((__interrupt__)) _SPI1Interrupt(void)
{
IFS0bits.SPI1IF = 0;
SPI1STATbits.SPIROV = 0;
}
void Init_Port(void);
void Init_SPI(void);
main()
{
Init_Port();
Init_SPI();
SPI_CS = 0;

WriteSPI1(0x0055);
while(SPI1STATbits.SPIRBF);
SPI_CS = 1;

}
void Init_Port(void)
{
SPI_CS = 1;
DIR_SPI_CS = 0;
MODE_SPI_CS = 1;
}

void Init_SPI(void)
{

unsigned int config1 , config2 ;

config1 = FRAME_ENABLE_OFF &
FRAME_SYNC_OUTPUT &
ENABLE_SDO_PIN &
SPI_MODE16_OFF &
SPI_SMP_OFF &
SPI_CKE_ON &
SLAVE_ENABLE_OFF &
CLK_POL_ACTIVE_HIGH &
MASTER_ENABLE_ON &
SEC_PRESCAL_8_1 &
PRI_PRESCAL_64_1;

config2 = SPI_ENABLE &
SPI_IDLE_CON &
SPI_RX_OVFLOW_CLR;

OpenSPI1(config1,config2);
ConfigIntSPI1(SPI_INT_PRI_6 & SPI_INT_EN);
}

程式SLAVE:
#include <p30f4011.h>
#include <spi.h>
#define FCY 7372800 * 2

_FOSC(CSW_FSCM_OFF & XT_PLL8);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN);
_FGS(CODE_PROT_OFF);
#define SPI_CS PORTEbits.RE3
#define DIR_SPI_CS TRISEbits.TRISE3
#define MODE_SPI_CS ADPCFGbits.PCFG3
void Init_SPI(void);
void Init_Port(void);
void __attribute__((__interrupt__)) _SPI1Interrupt(void)
{
IFS0bits.SPI1IF = 0;
SPI1STATbits.SPIROV = 0;
}
unsigned int data;
main()
{
TRISB=0xff00;
Init_Port();
Init_SPI();
SPI_CS = 0;
while(!DataRdySPI1());
data = ReadSPI1();
LATB=data;

SPI_CS = 1;
}
void Init_Port(void)
{
SPI_CS = 1;
DIR_SPI_CS = 1;
MODE_SPI_CS = 1;
}
void Init_SPI(void)
{
unsigned int config1;
unsigned int config2;
config1 = FRAME_ENABLE_OFF &
FRAME_SYNC_OUTPUT &
ENABLE_SDO_PIN &
SPI_MODE16_OFF &
SPI_SMP_OFF &
SPI_CKE_ON &
SLAVE_ENABLE_ON &
CLK_POL_ACTIVE_HIGH &
MASTER_ENABLE_OFF&
SEC_PRESCAL_8_1 &
PRI_PRESCAL_64_1;

config2 = SPI_ENABLE &
SPI_IDLE_CON &
SPI_RX_OVFLOW_CLR;

OpenSPI1(config1,config2);
ConfigIntSPI1(SPI_INT_PRI_6 & SPI_INT_EN);
}

發表於: 2009/12/8 10:46
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------