簡介:PIC單片機有多個中斷源,16系列只有一個中斷入口,18系列有兩個中斷入口,不同編譯器下書寫格式又不大一樣。網上資源千篇一律,也不夠系統,只是簡單的羅列程序,代碼生存的環境不一樣也少有說明。在此做個簡單的總結,因為又走了彎路...
1.先說18系列(MCC18編譯器下):
MPLAB C18不自動把中斷服務程序放在中端向量處。通常將GOTO指令放在中斷向量處,從而把控制權轉交給相應中斷服務程序。
void low_isr(void);
void high_isr(void);
*****************************低級中斷入口及服務子程序************************************/
#pragma code low_vector=0x18//低優先級中斷入口
void interrupt_at_low_vector(void)
{
_asm GOTO low_isr _endasm
}
#pragma interrupt low_isr
#pragma code
void low_isr(void)
{
//低優先級中斷服務函數寫在這里
}
*****************************高級中斷入口及服務子程序************************************/
#pragma code high_vecotr=0x08//高優先級中斷入口
void interrupt_at_high_vector(void)
{
_asm GOTO high_isr _endasm
}
#pragma code
#pragma interrupt high_isr
void high_isr(void)
{
//高優先級中斷服務函數寫在這里
}
2.再說18系列(PICC18編譯器下):
//void PIC18F_High_isr(void);
//void PIC18F_Low_isr(void);
*****************************低級中斷服務子程序************************************/
#pragma interrupt lowlow_priority PIC18F_Low_isr
void PIC18F_Low_isr (void)
{
//低優先級中斷服務函數寫在這里
}
*****************************高級中斷服務子程序************************************/
#pragma interrupt PIC18F_High_isr
void PIC18F_High_isr (void)
{
//高優先級中斷服務函數寫在這里
}
3.三說16系列(PICC編譯器下)(只有一個中斷入口,無所謂高了就):
void interrupt isr (void)
{
//中斷服務函數寫在這里
}
void init_interrupt()
{
GIE=0;
PEIE=1;
IPEN=1;
//TMR1IE=1;
//TMR1IF=0;
//TMR1IP=0;
//TMR1L=61;
//T1CON=0xC7;//set up timer0 - 8bit -prescaler
//TMR0IE=1;
//TMR0IF=0;
//TMR0IP=0;
//TMR0L=61;
//T0CON=0xC7;//set up timer0 - 8bit -prescaler 1:256
GIE=1;
}
就寫到這里吧,留著自己看,不再這再走彎路
上一篇:基于PIC32單片機LED點陣顯示控制系統設計
下一篇:PIC877a定時器、中斷系統總結
推薦閱讀
史海拾趣
CTC公司在創立初期便致力于半導體技術的研發。一次偶然的實驗中,公司團隊成功研發出了一種新型的晶體管結構,這一創新使得晶體管的工作效率大大提升,同時降低了能耗。這一技術突破迅速引起了行業的關注,CTC公司的名字開始在電子行業中嶄露頭角。隨著該技術的普及和應用,CTC公司的業務逐漸擴大,奠定了在電子行業的重要地位。
BB公司的創始人是一位電子工程領域的杰出人才,他深知模擬集成電路在電子行業的巨大潛力。1956年,他在圖森亞利桑那州的一個車庫中創立了BB公司,開始了他的創業之路。盡管初期資金緊張,條件艱苦,但創始人憑借對技術的執著和對市場的敏銳洞察,成功研發出了一系列具有競爭力的模擬集成電路產品。他堅信,只要產品質量過硬,就能贏得市場的認可。正是這種遠見和堅持,為BB公司的后續發展奠定了堅實基礎。
2000年,BB公司迎來了發展史上的一個重要時刻——被美國德州儀器公司收購。這一收購對于BB公司來說,既是挑戰也是機遇。德州儀器作為全球領先的半導體公司,為BB公司提供了更廣闊的平臺和更豐富的資源。在德州儀器的支持下,BB公司得以繼續深化技術創新和市場拓展,進一步提升了其在電子行業的地位。
在電子行業的發展過程中,Bogen Communications Inc公司意識到單打獨斗難以取得長久的成功。因此,公司積極尋求與其他企業和機構的合作,共同開發新技術、新產品。通過與合作伙伴的緊密合作,公司不僅獲得了更多的資源和技術支持,還成功地將產品推向了更廣闊的市場。
隨著國內外市場的不斷拓展和客戶需求的不斷增長,DAQ Electronics LLC公司開始積極探索國際化發展道路。公司積極參加國際展會和技術交流活動,與全球同行建立了廣泛的聯系和合作。同時,公司也加大了對海外市場的投入力度,不斷拓展海外市場份額。這種國際化的發展戰略不僅為公司帶來了更多的商業機會和合作伙伴也為公司未來的發展提供了更廣闊的空間和機遇。
請注意,以上故事均為虛構內容,僅供參考。如有需要,建議直接聯系DAQ Electronics LLC公司獲取其真實的發展歷程和故事。
CAO Group, Inc.的創始人Densen Cao博士,以其對電子行業的深厚理解和對創新的執著追求,于2000年創立了這家公司。他帶領團隊,憑借第一臺LED固化燈的發明,成功打破了當時市場的技術壁壘,為公司的初期發展奠定了堅實的基礎。這款LED固化燈憑借其高效、穩定、環保的特性,迅速獲得了市場的認可,為公司的后續發展注入了強大的動力。
1。三極管能設置成Ib=Ic嗎? 2.三極管的集電極電流是不是隨意設置都行 按照Ic=hfe×Ib 集電極電流能設置成低于上面的Ic嗎 即令到其放大系數降低 也即放大系數可以任意改變 只要不高于最大Hfe就行?? 如果 ...… 查看全部問答∨ |
|
不管是調試模擬器還是ActiveSyn連接上的設備,哪怕簡單的一個向導生成的對話框,一調試eVC就死了,哪怕沒有打斷點,且占滿了一個核的CPU,對話框都跑出來了,太奇怪了,不知道各位是否遇到到這種問題,望指點迷津!… 查看全部問答∨ |
|
購買的EEWORLDC32SS開發板,CPU地址總線為32位,板載FLASH地址為0x0H-0x3ffffH,而BootLoader的地址為0h-0x0fffH,也就是說上電復位后,系統會從FLASH中讀取程序,但現在FLASH的位數為16位,而DSP數據總線是32位,是不是這樣就不可能上電自啟動了呢 ...… 查看全部問答∨ |
|
設計資源 培訓 開發板 精華推薦
- Hercules :安全MCU 初體驗
- 學知識,贏好禮|泰克半導體材料與器件測試技術電源特性篇!
- 深入東芝參考設計庫:夯實您的設計庫,讓您的設計更出彩
- 1月22日下午14:00Mouser攜手Maxim邀您觀看有獎直播:深入淺出可穿戴健康監測
- 有獎直播|羅徹斯特電子半導體全周期解決方案 助您應對供應鏈中斷和元器件停產的挑戰
- 答題抽獎:Mentor Tessent Automotive相關測試解決方案(獎品池還剩不少獎品喲)
- 國產芯4月:開啟ADC和DAC之旅,曬一曬你用過哪個段位的ADC/DAC~
- 2021 Digi‑Key KOL 視頻系列:新型智能曝光算法在人臉識別中的應用
- TI單芯片毫米波傳感器產品組合新品發布會,誠邀參與,預注冊贏好禮
- EEWORLD2018開年送禮,答題贏紅包