外部中斷作為處理器響應外部事件的通道,在控制系統中起著非常重要的作用。下面就來討論一下LPC1114外部中斷的使用情況。
LPC1114的每一個引腳都可以響應一個外部中斷,所以有多少個引腳就有多少個外部中斷。但LPC1114的中斷系統非常強大,外部中斷只是它其中的一小部分。因此,要用好外部中斷,就必須先來了解LPC1114的整個中斷系統。下面就來看一下它的中斷系統。
在LPC11xx系列處理器中,有一個部分被稱為“私有外設總線”(Private peripheral bus),它位于Memory map中地址為0xE0000000~0xE0100000的地方,包含有下表中的幾個核心外設。
其中的Nested Vectored Interrupt Contorller(NVIC)就是中斷系統,被稱為“內嵌套向量中斷控制器”。它與處理器內核緊密耦合,可實現低中斷延遲及對新中斷的有效處理。它具有以下特征:
擁有32路向量中斷;每個中斷的優先級均可編程設置為0~192(步長64),數值越小優先級越高,0級為最高優先級;支持電平和邊沿觸發中斷;支持中斷尾鏈;擁有一個外部不可屏蔽中斷NMI。
NVIC所涉及到的寄存器如下表所示。
從表中可以看出,每個寄存器都是32位的結構,都具有可讀可寫的屬性,復位值都為全0。其中ISER寄存器是設置中斷的使能,32位對應32路中斷,值為1使能中斷,值為0不使能中斷。ICER寄存器是設置中斷的禁能,32位對應32路中斷,值為1禁能中斷,值為0不禁能。ISPR寄存器是設置中斷的掛起,32位對應32路中斷,值為1掛起,值為0不掛起。ICPR寄存器是清除中斷的掛起,32位對應32路中斷,值為1清除掛起,值為0不清除掛起。IPR0~7寄存器是設置中斷優先級。
下面是NVIC寄存器組所對應的結構體形式(位于頭文件core_cm0.h中)。
typedef struct
{
__IO uint32_t ISER[1]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */
uint32_t RESERVED0[31];
__IO uint32_t ICER[1]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */
uint32_t RSERVED1[31];
__IO uint32_t ISPR[1]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */
uint32_t RESERVED2[31];
__IO uint32_t ICPR[1]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */
uint32_t RESERVED3[31];
uint32_t RESERVED4[64];
__IO uint32_t IP[8]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */
} NVIC_Type;
因NVIC寄存器組的基址為0xE000E100,所以要將基址指針強制轉換為上述結構體,還必須要加上下面的定義。
#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */
#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */
#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */
接下來給出的是上面NVIC32位寄存器所對應的32路中斷向量的中斷源。
為了能描述上面的32路中斷源,在C語言中運用了枚舉類型,代碼如下所示(位于頭文件lpc11xx.h中)。
typedef enum IRQn
{
/****** Cortex-M0 Processor Exceptions Numbers
***************************************************/
NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */
HardFault_IRQn = -13, /*!< 3 Cortex-M0 Hard Fault Interrupt */
SVCall_IRQn = -5, /*!< 11 Cortex-M0 SV Call Interrupt */
PendSV_IRQn = -2, /*!< 14 Cortex-M0 Pend SV Interrupt */
SysTick_IRQn = -1, /*!< 15 Cortex-M0 System Tick Interrupt */
/****** LPC11xx/LPC11Cxx Specific Interrupt Numbers
**********************************************/
WAKEUP0_IRQn = 0, /*!< All I/O pins can be used as wakeup source. */
WAKEUP1_IRQn = 1, /*!< There are 13 pins in total for LPC11xx */
WAKEUP2_IRQn = 2,
WAKEUP3_IRQn = 3,
WAKEUP4_IRQn = 4,
WAKEUP5_IRQn = 5,
WAKEUP6_IRQn = 6,
WAKEUP7_IRQn = 7,
WAKEUP8_IRQn = 8,
WAKEUP9_IRQn = 9,
WAKEUP10_IRQn = 10,
WAKEUP11_IRQn = 11,
WAKEUP12_IRQn = 12,
CAN_IRQn = 13, /*!< CAN Interrupt */
SSP1_IRQn = 14, /*!< SSP1 Interrupt */
I2C_IRQn = 15, /*!< I2C Interrupt */
TIMER_16_0_IRQn = 16, /*!< 16-bit Timer0 Interrupt */
TIMER_16_1_IRQn = 17, /*!< 16-bit Timer1 Interrupt */
TIMER_32_0_IRQn = 18, /*!< 32-bit Timer0 Interrupt */
TIMER_32_1_IRQn = 19, /*!< 32-bit Timer1 Interrupt */
SSP0_IRQn = 20, /*!< SSP0 Interrupt */
UART_IRQn = 21, /*!< UART Interrupt */
Reserved0_IRQn = 22, /*!< Reserved Interrupt */
Reserved1_IRQn = 23,
ADC_IRQn = 24, /*!< A/D Converter Interrupt */
WDT_IRQn = 25, /*!< Watchdog timer Interrupt */
BOD_IRQn = 26, /*!< Brown Out Detect(BOD) Interrupt */
FMC_IRQn = 27, /*!< Flash Memory Controller Interrupt */
EINT3_IRQn = 28, /*!< External Interrupt 3 Interrupt */
EINT2_IRQn = 29, /*!< External Interrupt 2 Interrupt */
EINT1_IRQn = 30, /*!< External Interrupt 1 Interrupt */
EINT0_IRQn = 31, /*!< External Interrupt 0 Interrupt */
} IRQn_Type;
從上述代碼中可以看出,除了32路中斷源外,還加入了優先級更高5個中斷源。這里先不進行說明,在后面用到時再來討論。定義好上述代碼后,就可以來寫中斷所需要的函數了。下面就是依據CMSIS規范所定義的8個中斷操作函數(位于頭文件core_cm0.h中)。
1.允許某個中斷或異常
static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
{
NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
2.禁止某個中斷或異常
static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
{
NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
3.讀取某個中斷或異常的掛起狀態
static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
{
return((uint32_t) ((NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0));
}
4.把某個中斷或異常的掛起狀態設為1
static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
{
NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
5.把某個中斷或異常的掛起狀態清為0
static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
{
NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */
}
6.把某個中斷或異常的可配置優先級設為1
static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
{
if(IRQn < 0) {
SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |
(((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }
else {
NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |
(((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }
}
7.讀取某個中斷或異常的優先級
static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
{
if(IRQn < 0) {
return((uint32_t)((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M0 system interrupts */
else {
return((uint32_t)((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */
}
8.復位NVIC
static __INLINE void NVIC_SystemReset(void)
{
__DSB(); /* Ensure all outstanding memory accesses included buffered write are completed before reset */
SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | SCB_AIRCR_SYSRESETREQ_Msk);
__DSB(); /* Ensure completion of memory access */
while(1); /* wait until reset */
}
在上述函數中有幾點要說明一下,一是數組的引用其取值只能是0(即第一個元素),這是因為在結構體定義中只定義了一個數組元素,且由于需要利用數組的地址連續性來對映CPU物理地址,所以也不能將其定義為一個普通變量;二是關鍵字“__INLINE ”在頭文件core_cm0.h中已做了宏定義“#define __INLINE __inline”,__inline是通知編譯器其后面的函數為內聯形式;三是中斷源IRQn要與0x1F與一下,是為了屏蔽高27位的值,因為中斷源的最大值只到31,所以只用了32位中的低5位(31的二進制是11111,十六進制是0x1F);四是在函數的參數中,由于引入了枚舉類型,所以可以在調用函數的時候,在參數部分可直接使用枚舉中的名稱,這樣就可以省去記憶32個中斷源在32位寄存器中的對應位置,便于書寫和閱讀。例如,要開啟端口0的外部中斷,執行程序“NVIC_EnableIRQ(EINT0_IRQn)”即可。
上述就是LPC1114中的整個中斷系統,即“內嵌套向量中斷控制器”。可以看出,它控制著整個處理器32路中斷源的使能與掛起等8個動作,功能非常強大。但做為外部中斷的端口中斷源卻只有4個,即EINT0_IRQn、EINT1_IRQn、EINT2_IRQn、EINT3_IRQn四個。而每一個端口又對應有12個引腳(端口3為6個)又都可以產生外部中斷,那怎么來判斷是那個引腳上申請的中斷呢?這就需要借助前面“通用輸入/輸出端口”部分介紹過的MIS寄存器了。在外部中斷響應的服務程序內,判別MIS寄存器的各個位,值為1的位所對應的就是觸發本次外部中斷的引腳。
和所有的單片機一樣,在中斷響應后,程序指針會跳轉到相應的中斷向量入口處去執行中斷服務程序,而在C語言中則是以特定形式的中斷入口函數來呈現。比如EINT0_IRQn、EINT1_IRQn、EINT2_IRQn、EINT3_IRQn四個端口的外部中斷入口函數分別如下:
void PIOINT0_IRQHandler(void)
{
端口0的中斷服務程序部分
}
void PIOINT1_IRQHandler(void)
{
端口1的中斷服務程序部分
}
void PIOINT2_IRQHandler(void)
{
端口2的中斷服務程序部分
}
void PIOINT3_IRQHandler(void)
{
端口3的中斷服務程序部分
}
上述函數的名稱是不能改變的,它標志著特定的中斷入口,除了四個外部中斷以外的其它中斷源,也有各自的中斷入口函數,它們都位于起動文件“startup_LPC11xx.s”中,在以后用到時再討論,這里就不給出了。
下面來討論一個外部中斷的例子,要求使用外部中斷來實現按鍵控制LED的亮滅。程序代碼如下(假設KEY接在GPIO1.9,LED接在GPIO1.0):
#include
把上述程序編譯后下載到LPC1114中,給系統上電,可以看出在按下KEY后LED亮,放開KEY后LED滅,達到了使用外部中斷控制的目的。
最后說明一點,如果需要打開或關閉中斷“總中斷”,可調用“__enable_irq();和__disable_irq();”來實現,它們是通過調用匯編語言來實現這一操作的,具體的原型在頭文件“core_cmFunc.h”中,可自行查看,這里就不詳述了。
原文地址:http://blog.chinaaet.com/detail/14716
LPC1114/LPC1343使用GPIO中斷
/*****************************************************************************
* gpiotest.c: main C entry file for AutoHome-M0 Develop Board
* Copyright(C) 2010, 貞明電子
* All rights reserved.
* http://djbgreen.taobao.com
* History
* 2010.12.12 ver 1.00 綠無涯
******************************************************************************/
#include "LPC11xx.h" /* LPC11xx Peripheral Registers */
#include "gpio.h"
void Delay(uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
void PIOINT1_IRQHandler(void) //中斷服務函數
{
uint32_t regVal;
regVal = GPIOIntStatus( PORT1, 4 ); //讀取該IO組的中斷狀態
if ( regVal )
{
LPC_GPIO3->DATA^=(1<<4); //P3_4閃動1次 LED3
GPIOIntClear( PORT1, 4); //清除中斷標志
}
return;
}
void PIOINT2_IRQHandler(void)
{
uint32_t regVal;
regVal= GPIOIntStatus( PORT2, 11);
if(regVal)
{
LPC_GPIO2->DATA^=(1<<8); //P2_8閃動1次 LED1
GPIOIntClear( PORT2, 11);
}
return;
}
void PIOINT3_IRQHandler(void)
{
uint32_t regVal;
regVal= GPIOIntStatus( PORT3, 5);
if(regVal)
{
LPC_GPIO2->DATA^=(1<<9); //P2_9閃動1次 LED2
GPIOIntClear( PORT3, 5);
}
return;
}
void UserIO_Init(void)
{
// LPC_IOCON
LPC_GPIO2->DIR=(1<<8)|(1<<9); //P2_8,P2_9 LED1,LED2
GPIOSetDir(PORT3,4,1); //P3_4 output LED3
GPIOSetDir(PORT2,11,0); //Set P2.11 input
GPIOSetDir(PORT1,4,0); //P1_4
GPIOSetDir(PORT3,5,0); //P2_5
//LPC_GPIO2->DIR=~((1<<11)|(1<<5));
//LPC_GPIO1->DIR=~(1<<4);
GPIOSetInterrupt(PORT2,11,0,0,1);//端口號, 位地址, sense, single/doube, 上升/下降沿
GPIOSetInterrupt(PORT3,5,0,0,1);
GPIOSetInterrupt(PORT1,4,0,0,1);
GPIOIntEnable(PORT2,11); //使能該端口中斷P2_11
GPIOIntEnable(PORT3,5); //使能該端口中斷P3_5 (LPC1343為P2_5)
GPIOIntEnable(PORT1,4); //使能該端口中斷P1_4
}
int main(void)
{
SystemInit(); //系統初始化
GPIOInit(); //GPIO初始化,包括GPIO時鐘初始化
UserIO_Init(); //用戶使用的IO初始化(設置IO方向、中斷、IO功能選擇)
//有時所有配置正確,卻得不到功能,就是沒有進行IO功能選擇
while(1)
{
}
}
/*********************************************************************************
** End Of File
*********************************************************************************/
上一篇:用LPC1114做產品-如何設計程序下載接口flashmagicISP
下一篇:LPC1114在KEIL環境下不能進入調試狀態的解決方法
推薦閱讀
史海拾趣
Amphenol Corporation,通常簡稱為Amphenol,是一家全球領先的連接技術公司,提供廣泛的連接器解決方案,涵蓋了航空航天、汽車、通信、工業、醫療和軍事等多個領域。以下是關于Amphenol公司發展的五個相關故事:
創立與起步階段:Amphenol公司成立于1932年,總部位于美國康涅狄格州沃拉姆。最初,公司致力于生產無線電連接器,并通過不斷的創新和技術改進,逐步發展成為連接器行業的領導者之一。在第二次世界大戰期間,Amphenol公司為美國軍隊提供了大量的軍用連接器,為公司的發展奠定了堅實的基礎。
技術創新與產品多樣化:隨著電子技術的不斷進步和市場需求的不斷變化,Amphenol公司不斷進行技術創新,拓展產品線的多樣性。除了傳統的連接器產品,公司還開發了許多新型連接器,如光纖連接器、高速數據連接器、環境密封連接器等,以滿足不同行業的需求。
全球化發展與市場拓展:Amphenol公司在全球范圍內建立了廣泛的銷售網絡和生產基地,實現了全球化布局和市場覆蓋。公司在美國、歐洲、亞洲和其他地區設有多個生產工廠和研發中心,為客戶提供當地化的服務和支持。通過不斷擴大市場份額和提升產品質量,Amphenol公司成為了全球連接器市場的主要參與者之一。
客戶合作與定制化解決方案:Amphenol公司與客戶建立了緊密的合作關系,根據客戶的需求和應用場景,提供定制化的連接器解決方案。公司的工程團隊與客戶共同設計和開發符合特定要求的產品,為客戶提供專業化和個性化的服務。這種定制化解決方案能夠滿足客戶多樣化的需求,增強了公司在市場上的競爭優勢。
質量管理與持續改進:Amphenol公司高度重視產品質量管理,嚴格遵循國際質量管理體系標準。公司的生產工藝和質量管理體系通過了ISO 9001質量管理體系認證,并持續進行質量改進和技術創新。此外,Amphenol公司的產品還通過了各種行業認證和標準,如航空航天領域的AS9100認證等,確保產品的可靠性和穩定性。
這些故事展示了Amphenol公司從創立初期到如今在技術創新、產品多樣化、全球化發展、客戶合作與定制化解決方案以及質量管理與持續改進等方面取得的重要進展。
Fine Products Microelectronics Corp公司發展故事(虛構)
故事一:技術創新引領市場
Fine Products Microelectronics Corp(簡稱FPMC)自創立之初便致力于半導體技術的創新。在上世紀90年代,當半導體行業還普遍使用傳統光刻技術時,FPMC的研發團隊率先提出了步進式光刻機(Wafer Stepper)的概念。這一創新極大地提高了芯片制造的精度和效率,使得芯片特征尺寸得以大幅縮小。盡管初期面臨技術難度大、市場接受度低等挑戰,但FPMC憑借堅持不懈的努力,最終成功研發出并量產了步進式光刻機,迅速在半導體制造領域占據了領先地位。
故事二:與巨頭的合作與競爭
在FPMC的成長過程中,與行業內巨頭的合作與競爭是不可或缺的一部分。特別是在21世紀初,FPMC與IBM、TI等知名企業建立了合作關系,共同推進半導體技術的研發和應用。然而,這種合作并非一帆風順,FPMC在某些關鍵技術上堅持自主研發,與IBM的電子束光刻(e-beam)技術產生了競爭。盡管這種競爭給FPMC帶來了一定的壓力,但也促使公司不斷加大研發投入,提升技術實力,最終形成了自己獨特的競爭優勢。
故事三:石墨烯電極技術的突破
近年來,隨著二維材料研究的興起,FPMC緊跟科技前沿,成功研發出了石墨烯輔助金屬電極轉印技術。這一技術利用石墨烯與金屬間較弱的范德華作用力,實現了金屬電極陣列在二維溝道材料上的無損轉移。該技術不僅提高了電極的制備精度和效率,還降低了制造成本,為二維芯片的應用開辟了新的路徑。FPMC的這一創新成果迅速獲得了業界的關注和認可,進一步鞏固了公司在半導體材料領域的領先地位。
故事四:物聯網時代的布局
隨著物聯網技術的快速發展,FPMC敏銳地捕捉到了這一市場機遇。公司及時調整戰略方向,加大了對物聯網相關產品的研發力度。通過與多家物聯網企業和研究機構的合作,FPMC成功推出了一系列高性能、低功耗的物聯網芯片和解決方案。這些產品廣泛應用于智能家居、智慧城市、工業控制等領域,為物聯網的普及和發展提供了強有力的支持。
故事五:綠色可持續發展
在追求技術創新和市場拓展的同時,FPMC始終不忘企業的社會責任。公司積極響應全球綠色可持續發展的號召,致力于研發環保型半導體產品和制造工藝。通過采用先進的節能減排技術和循環利用材料等手段,FPMC不僅降低了自身的生產成本和能耗水平,還為推動半導體行業的綠色可持續發展做出了積極貢獻。此外,公司還積極參與社會公益活動,為構建和諧社會貢獻自己的一份力量。
ACL Staticide是一家專業生產靜電控制產品的公司,以下是該公司發展的五個相關故事:
公司成立和起步階段: ACL Staticide成立于1971年,總部位于美國伊利諾伊州,是一家專注于靜電控制產品的制造商。公司最初致力于研發和生產靜電消除劑、清潔劑和防靜電地板涂層等產品,用于解決靜電問題帶來的種種困擾,如靜電放電、靜電積聚等。
技術創新和產品拓展: 隨著市場對靜電控制需求的增長,ACL Staticide不斷進行技術創新,并拓展了產品線。公司推出了一系列靜電控制產品,包括靜電消除器、清潔劑、防靜電地板涂層、靜電測試儀器等,以滿足各種不同行業的需求。
市場拓展和國際合作: ACL Staticide積極開拓國內外市場,與全球各地的客戶建立了合作關系。公司的產品被廣泛應用于電子制造、半導體、醫療、航空航天、汽車等領域,贏得了客戶的信賴。同時,ACL Staticide與國際知名企業合作,共同推動靜電控制技術的發展。
持續投入研發和質量控制: ACL Staticide不斷加大研發投入,致力于產品質量和技術創新。公司設立了專門的研發團隊和實驗室,不斷改進現有產品,并開發新的靜電控制解決方案,以滿足客戶不斷變化的需求。
未來發展展望: ACL Staticide將繼續致力于靜電控制產品的研發和應用,不斷推出更先進、更可靠的產品和解決方案,以滿足客戶在各個領域的需求。公司將加強國際市場拓展,提升自身在全球市場的競爭力,為行業的發展做出更大的貢獻。
FCI Connector的前身可以追溯到1937年成立的費城絕緣體公司(Philadelphia Insulation Company)。這家公司最初專注于電子零件的制造和銷售。隨著時間的推移,公司在1976年被德州儀器(Texas Instruments)收購,并更名為TI Electronic Components(TIEC)。然而,TIEC在1981年做出了一個重大的戰略決策:將連接器業務剝離出來,成立了FCI Connector公司。這一決策讓FCI能夠更專注于電子連接器的研發、生產和銷售,為其后續的快速發展奠定了基礎。
面對不斷變化的市場環境和客戶需求,Abbatron公司始終堅持創新發展的理念。公司不斷投入研發資金,加強人才培養和團隊建設,推動技術創新和產品升級。同時,公司還積極探索新的商業模式和市場機會,為未來的發展奠定了堅實的基礎。
請注意,以上故事僅為示例,并非基于Abbatron公司的實際發展情況。您可以根據Abbatron公司的實際情況和公開資料,對這些故事進行改編和補充,以更好地反映該公司的發展歷程和成就。
在早期的發展階段,Cramer公司推出了一款革命性的智能手機。這款手機采用了最新的芯片技術和高分辨率顯示屏,為用戶提供了出色的使用體驗。為了滿足市場需求,Cramer公司加大了研發投入,不斷優化產品性能。最終,這款手機在市場上取得了巨大的成功,為Cramer公司帶來了可觀的收益,并奠定了其在電子行業中的地位。
我對嵌入式軟件開發的時間也不是很長,僅僅只有5年,算不上高手,也不是老手只能算是5歲的老菜鳥 ,在前面的3年里沒有高人指點,靠著自己摸索也寫了不少的程序吧,那時侯我沒有想過要寫出容易理解 和維護以及移植的問題,僅僅想著如何把這個功能 ...… 查看全部問答∨ |
品牌設計師 崗位要求: * 視覺傳達設計類專業本科以上學歷; * 有平面設計從業經驗,并有較多的作品; * 熟練使用Photoshop、Illustrator、CorelDraw等軟件,熟悉排版、印刷等后期制作; * 能快速、全面、準確的領悟產品信息,對產品設計有獨 ...… 查看全部問答∨ |
下面貼個freescale的coldfire v1系列中mcf51cn128 MCU的一個示例,利用定時器實現輸出捕獲的功能。 MCF51CN128是freescale去年推出的V1 CORE的coldfire處理器,具有一個以太網控制器,是實現以太網應用的不錯選擇 具有50MHZ的主頻 ------------- ...… 查看全部問答∨ |
|
我想問一下,NRF2401的芯片發送數據時,怎么檢測它到底發沒發信號,我看了許多關于這部分調試的文章,只是對這個問題一帶而過,我現在都不知道整個程序到底是哪出了問題。是發射呢,還是i接收呢? 還有一個小問題就是,我用的是MSP430單片機,沒有 ...… 查看全部問答∨ |
是不是在FPGA和硬盤之間還要一個什么轉接的芯片?怎么在網上也搜不這種芯片。。。求高人指點一下FPGA對SATA 2硬盤的讀寫整體構架和需要的硬件!!!… 查看全部問答∨ |
wince5.0系統 SD卡驅動已經可以發現識別卡 并且sdmemory.dll已經被sdbus加載 但是有一個問題: 如果sd卡沒有格式化(其實里面有東西,而且用其他的windows mobile手機能看見卡里面的東西) 那么就沒有sd盤符顯示但是在存儲管理器中能看見它的存在 ...… 查看全部問答∨ |
|
目前我司開發了一套ARM測試板,用的是菲利浦LPC2138型號的cpu,H-JTAG的引腳與cpu的連接正確,前幾天用H-JTAG SERVER檢測cpu的時候可以檢測,也可以在線編程,但是昨天不知道怎么回事用H-JTAG SERVER檢測cpu的時候就是檢測不到,但是沒有改任何的設置, ...… 查看全部問答∨ |
我以前做工控的,現在有個項目,需要實時系統,本來說基于pc104+IO擴展卡,由于IO數目比較多,PC104可能達不到要求,我現在想基于PC機+PCI或者是PXI,我目前的問題是 1.Vxworks支持哪些CPU,是不是只要是X86架構的都能夠運行。 2.哪 ...… 查看全部問答∨ |