|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
2100板關于用OsII編寫spi程序的問題!高手請解答! |
| 作者:liangge005 欄目:MCU技術 |
大蝦們好! 我現(xiàn)在用的周立功公司的esayarm2100的板子,現(xiàn)在我嵌入了osII系統(tǒng)做他們送的spi例程(附送的光盤有帶或者是ARM微控制器基礎與實踐書的P422頁有介紹)本來它是控制led數(shù)碼管循環(huán)顯示0-9,但是實際運行程序時,發(fā)現(xiàn)程序隨機的會停下,停到哪一個數(shù)是不確定的,有時候運行幾個循環(huán),有時候只是一個或者不到。 是任務被中止了,還是被掛起了,還是他們的例程本身代碼就有問題,別的機子也會出現(xiàn)這種情況嗎?還是有什么特殊設置? 大蝦們有出現(xiàn)這種情況的嗎?會是什么原因,原碼我也可以粘上! 我現(xiàn)在百思不得其解!特別需要你的指點! int main (void) //主程序 { OSInit(); OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0); OSStart(); return 0; } uint8 const ShowTable[11] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x00}; // 0 1 2 3 4 5 6 7 8 9 void TaskStart(void *pdata) //任務程序,本任務實現(xiàn)循環(huán)顯示 { uint8 TEMP,i; pdata = pdata; /* 避免編譯警告 */ TargetInit(); /* 目標板初始化 */ PINSEL1 = (PINSEL1 & 0xf3ffffff); IO0DIR = HC595_CS; IO0DIR|=LED1CON; for (;;) { for (i = 0; i < 10; i++) { SPIStart(); IO0CLR = HC595_CS; SPIRW(&TEMP, ~ShowTable[i]); IO0SET = HC595_CS; SPIEnd(); OSTimeDly(OS_TICKS_PER_SEC / 5); IO0CLR=LED1CON; OSTimeDly(OS_TICKS_PER_SEC / 8); IO0SET=LED1CON; OSTimeDly(OS_TICKS_PER_SEC / 8); } } } |
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |