會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





Harmony SPI 帧模式
新會員
註冊日期:
2016/12/28 15:57
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 14
離線
我是使用PIC32MX775F512L 當主端
外接ADC當從端
SCK腳:SCK由MCU提供
SS腳:由外接ADC提供32K的脈衝給MCU

程式目的:希望RXbuffer[0]裡的值能夠一直更新,來得到SPI傳過來的值

輸入以下程式則程式會停在system_exceptions.c裡的SYS_DEBUG_BreakPoint();
想問停在這裡的意義是什麼,查手冊知道這是軟件斷點,但不知道錯在哪,能給點提示嗎

如果把程式裡X行(下面有註解) 改成"狀態 = 結束"
則程式雖然不會停在SYS_DEBUG_BreakPoint();
但是RXbuffer[0]的值就不會更新了

以前都是一個.C檔寫到底,不太熟悉Harmony環境&狀態機的觀念&物件等等
現在到處碰壁,想參考Harmony提供的範例,但範例只有正常模式的SPI
自己也思考了一些問題,問題是狀態機嗎或者是不是還需要一些低階PLIB_SPI的函式來微調


case 初始狀態:
appData.SPIHandle = DRV_SPI_Open
{
DRV_OC0_Start();//PWM產生1MHZ給ADC取樣用
DRV_TMR0_Start();//給PWM用
if(appData.SPIHandle != DRV_HANDLE_INVALID)
{
狀態 = 讀;
}
else
{
狀態 = 錯誤;
}
break;
}

case 讀:
{
appData.Read_Buffer_Handle = DRV_SPI_BufferAddRead(appData.SPIHandle,(SPI_DATA_TYPE*)&appData.RXbuffer[0], 4, 0, 0);
狀態 = 數據接收狀態;
break;
}

case 數據接收狀態:
{
if(DRV_SPI_BUFFER_EVENT_COMPLETE & DRV_SPI_BufferStatus(appData.Read_Buffer_Handle))
{
狀態 = 讀; /* X行 */
}
else
{
狀態 = 數據接收狀態;
}
break;
}

case 結束:
{
Nop();
}

<<附件有程式可以參考>>

附加檔案:



jpg  擷46取.JPG (89.47 KB)
50423_5863b8aa99215.jpg 525X774 px
rar PIC32_24ADC_WIFI.rar 大小: 378.01 KB; 下載次數: 13

jpg  6845661.JPG (33.41 KB)
50423_5863bc761d310.jpg 583X296 px

2016/12/28 21:18
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088221 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project