|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
arm菜鳥問題:為什么看不到流水燈???(LPC2132+H-jtag調(diào)試) |
| 作者:wkman 欄目:ARM技術(shù) |
arm菜鳥問題:為什么看不到流水燈???(LPC2132+H-jtag調(diào)試) 代碼如下: //**************************************************************** //LPC2132:11.0592MHZ //最小化系統(tǒng);只在P0.1_RXD0上接了個灌電流的LED燈! //**************************************************************** #include <stdio.h> #include <LPC213X.H> /* //LPC213X.H define: #define IOPIN0 (*((volatile unsigned LONG *) 0xE0028000)) #define IOSET0 (*((volatile unsigned LONG *) 0xE0028004)) #define IODIR0 (*((volatile unsigned LONG *) 0xE0028008)) #define IOCLR0 (*((volatile unsigned LONG *) 0xE002800C)) #define IO0PIN (*((volatile unsigned LONG *) 0xE0028000)) #define IO0SET (*((volatile unsigned LONG *) 0xE0028004)) #define IO0DIR (*((volatile unsigned LONG *) 0xE0028008)) #define IO0CLR (*((volatile unsigned LONG *) 0xE002800C)) */ //定義P1_0口為LED口 #define led_1 (1<<0) #define led_1_on() (IO0CLR|=led_1) #define led_1_off() (IO0SET|=led_1) //**************************************************************** // Delay prg (i: 7<->43) //**************************************************************** void delay (unsigned int i) { unsigned int n; while(i>1) { for(n=65535;n>1;n--) ; i--; } } //**************************************************************** // MAIN : //**************************************************************** void main(void) { PINSEL0 = 0x00000000; // 設置管腳連接GPIO PINSEL1 = 0x00000000; // 設置管腳連接GPIO PINSEL2 = 0x00000000; //P1 //PINSEL2 = 0x00000004; //P1->RTCK IO0DIR = 0x00000000; // 設置P0口為輸入 IO1DIR = 0x00000000; // 設置P1口為輸入 //**************************************************************** while(0) //111 { delay(20); IO0SET = 0x0000001; //無反應 delay(20); IO0CLR = 0x0000001; } while(1) //222 { delay(10); IO0DIR = 0xffffffff; //改變端口方向 delay(20); //可看到LED閃爍! IO0DIR = 0x00000000; } while(0) //333 { led_1_on(); //也無反應 delay(20); led_1_off(); delay(20); } //**************************************************************** } !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 為什么在hjtag調(diào)試仿真的時候: 只有//222的代碼段可以看到,但實際中這樣使用就麻煩大了。 //111和//333看不到,而且這兩種才是DX們使用的端口置位清零方法。。。 |
| 2樓: | >>參與討論 |
| 作者: wkman 于 2006/12/18 9:45:00 發(fā)布:
禮拜一,這里的牛人是不是都沒起來?^_^! |
|
| 3樓: | >>參與討論 |
| 作者: zlgarm 于 2006/12/18 9:57:00 發(fā)布:
請將對應端口設為輸出 |
|
| 4樓: | >>參與討論 |
| 作者: wkman 于 2006/12/18 11:44:00 發(fā)布:
設置了,還是沒反應:如下 IO0DIR = 0x00000001; // 設置P0.1為輸出 IO1DIR = 0x00000000; // 設置P1口為輸入 //**************************************************************** while(1) //111 { delay(30); IO0SET = 0x0000001; //無反應 ???????? delay(30); IO0CLR = 0x0000001; } 設置p01為輸出了,到底是哪里不對頭? 我看2104的配套書也是配置為輸出,就是沒反應。 惟有//222方式可以看到流水燈。。。 |
|
| 5樓: | >>參與討論 |
| 作者: wkman 于 2006/12/18 11:50:00 發(fā)布:
而且,一點仿真就進入“run”狀態(tài),不能單步或者: 47: 48: 0x4000018C 6002 STR R2,[R0,#0x00] 0x4000018E 6002 STR R2,[R0,#0x00] 《《《=或者單步到這里就自動進入全速運行,,,,, 49: IO0DIR = 0x00000001; // 設置P0.1為輸出 |
|
| 6樓: | >>參與討論 |
| 作者: coolbo83 于 2006/12/18 12:56:00 發(fā)布:
PINSEL2 = 0x00000000 將JTAG調(diào)試端口P1.31~P1.26設為GPIO,無法調(diào)試啦! 請注意PINSEL2的設置。 while(0)???是什么意思?? |
|
| 7樓: | >>參與討論 |
| 作者: wkman 于 2006/12/18 13:09:00 發(fā)布:
2 :while(0)只是為調(diào)試方便,要使用哪個就把哪個 2: while(0)只是為調(diào)試方便,要使用哪個就把哪個while里面的數(shù)據(jù)置1,其他不用的置0。。。 1:現(xiàn)在應該社PINSEL2=0x00000004;//p1。31~p1。26做為調(diào)試端口 這下對了吧??? 可一執(zhí)行就是“全速運行”狀態(tài),燈也不閃爍。 PINSEL0 = 0x00000000; // 設置管腳連接GPIO PINSEL1 = 0x00000000; // 設置管腳連接GPIO //PINSEL2 = 0x00000000; //P1 PINSEL2 = 0x00000004; //P1->RTCK //p1.16~p1.25未使用。 IO0DIR = 0x00000001; // 設置P0.1為輸出 IO1DIR = 0x00000000; // 設置P1口為輸入 //**************************************************************** while(1) //111 { delay(30); IO0SET = 0x0000001; //無反應 ???????? delay(30); IO0CLR = 0x0000001; } |
|
| 8樓: | >>參與討論 |
| 作者: wkman 于 2006/12/18 13:25:00 發(fā)布:
就算是把zlg的2104模板改裝了一下也沒反應。 // zlg 2104 模板 /**************************************************************************** * File:LEDCON.C * 功能:LED閃爍控制。對發(fā)光二極管LED4進行控制,采用軟件延時方法。 * 使用I/O口直接控制LED,采用灌電流方式。 * 說明:將跳線器JP8_LED4短接。 ****************************************************************************/ #include "config.h" //#define LEDCON 0x00002000 /* P0.13引腳控制LED4,低電平點亮*/ ////////////////////////////////////////////////////// #define LEDCON 0x00000001 // P0.1引腳控制LED4,低電平點亮 //改動了這句 /**************************************************************************** * 名稱:DelayNS() * 功能:長軟件延時 * 入口參數(shù):dly 延時參數(shù),值越大,延時越久 * 出口參數(shù):無 ****************************************************************************/ void DelayNS(uint32 dly) { uint32 i; for(; dly>0; dly--) for(i=0; i<50000; i++); } /**************************************************************************** * 名稱:main() * 功能:控制LED閃爍 ****************************************************************************/ int main(void) { PINSEL0 = 0x00000000; // 設置所有管腳連接GPIO PINSEL1 = 0x00000000; ////////////////////////////////////////////////////// PINSEL2 = 0x0000000c; //PINSEL2 = 0x00000004; IODIR0 = LEDCON; // 設置LED4控制口為輸出 while(1) { IOSET0 = LEDCON; DelayNS(30); IOCLR0 = LEDCON; DelayNS(30); } return(0); } |
|
| 9樓: | >>參與討論 |
| 作者: wkman 于 2006/12/18 16:18:00 發(fā)布:
解決了:菜鳥偶數(shù)錯管腳了!^_^! PINSEL2 = 0x0000000c; //P1->RTCK //p1.16~p1.25未使用。 IO0DIR = 0x00000002; // 設置P0.1為輸出 IO1DIR = 0x00000000; // 設置P1口為輸入 //**************************************************************** while(1) //111 { delay(30); IO0SET = 0x0000002; //。!錯在這里 //P0.1_RXD0腳應該是0x02,以前全部寫錯,寫成了0x01!!!!!!!!!!! //菜鳥的第一個程序完成^_^!自己賀一下。。。。^_^!謝謝各位捧場。。。 delay(30); IO0CLR = 0x0000002; } |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |