• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users




« 1 (2)


Re: PORTB中斷
#7
中級會員
中級會員


查看用戶資訊
請敎諸位大大, 是否在使用PORTB中斷時, 一定要致能INTCON2.RBPU?

有看到別人的程式中有致能這pin.

發表於: 2008/3/3 10:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PORTB中斷
#6
版主
版主


查看用戶資訊
Interrupt-On Pin Change 的重點是:
RBIF的中斷要離開前前衣錠要現做一次 PORTB 的讀取動作,讓內部的 D-Type 正反器泥垢記住目前的輸入位準後再做 RBIF=0 的動作離開中斷函數。

發表於: 2008/2/29 15:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PORTB中斷
#5
中級會員
中級會員


查看用戶資訊
受教了, Ryang大大.

1. 關於中斷裡的延遲時間只是我假設預定執行的時間, 預設兩秒, 經過計算, 所以我用delay time的方式去實現.

2. 是, 我會在看一次datasheet裡關於PORTB中斷的說明.

3. 當初會用SW2是預想用一個現成的button去模擬輸入, 不過在review程式的時候, 我也覺得這里怪怪的, 所以我現在已經將這部份改成用count的方式去執行, 而不再用SW2.

while(1)
{
for (i=0;i<9;i++) Delay10KTCYx(200); // Delay 3 sec
PORTB=0xFF;
}

4. 小弟也了解組語是MCU的核心, 也會一步一步慢慢嘗試去學習.

謝謝您的答覆...

發表於: 2008/2/29 15:37
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PORTB中斷
#4
版主
版主


查看用戶資訊
看來看去總認為你的程式架構不適用。
1. 沒有人會在中斷程式裡花那嚜多的執行時間。
OpenLCD();
LCD_Set_Cursor(0,0);
putrsLCD("PORTB INTERRUPT");
for (i=0;i<6;i++) Delay10KTCYx(200);
你知道以上的程式要花多少時間嗎? 怎麼它麼會出現在中斷程式裡。考慮一下系統的流程,中斷的程式要像迷你裙一樣越短越好。

2. 詳細看一下 Data Sheet 有關 PORTB 的描述與方塊說明,由方塊圖去了解一下 Interrupt-On Pin Change 的原理。Data Sheet 裡有強調要先做一次 PORTB 的讀取動作後再清除 RBIF 旗號。

3. 既然已經使用 Interrupt-On Pin Change 的偵測功能了,這時就不需用軟體迴圈測試 SW2。所以原先程式也要修改。
參照:
while (1)
{
if (!SW2) PORTB=0xFF; }

}

4. 組合語言是核心,不熟的話還是要去了解的,盡量試試看。


發表於: 2008/2/29 15:17
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PORTB中斷
#3
中級會員
中級會員


查看用戶資訊
Kbat524大大, 您是說在清除INTCONbits.RBIF之前去讀取PORTB(4:7)的值嗎? 可是在PORTB準位改變時, INTCONbits.RBIF不就會被寫成1; 所以我原先的想法是當PORTB(4:7)改變狀態, INTCONbits.RBIF=1時, 觸發中斷行為, 使其達成預設動作, 所以才沒有對PORTB(4:7)進行讀取的動作.

另外我也有去參考您所說的資料, 不過它是ASM的版本, 小弟對組語不熟悉, 不知道是否有C語言的範例可以參考.

發表於: 2008/2/29 14:43
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PORTB中斷
#2
高級會員
高級會員


查看用戶資訊
在isr的清除中斷旗標前先做讀取portB.4的動作,因為PORT的狀態會被LATCH住。AN566 Using the PORTB Interrupt on Change as an External Interrupt有範例說明!!

發表於: 2008/2/29 9:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


PORTB中斷
#1
中級會員
中級會員


查看用戶資訊
小弟現在想要在APP013上作出一個程式. 當我按下SW2, PORTB(4:7)的值會改變, 借此觸動中斷使得LCD上印出文字, 可是在執行時, 在我按下SW2後, 程式卻沒有進入中斷.
不知道是程式哪裡有錯, 請各位大大給予指教, 謝謝

#include <p18f4550.h>
#include "P18F_LCD.h"
#include <delays.h>
#include <portb.h>

#define SW2 PORTBbits.RB4 // SW2

void OpenLCD(void);
void isr_high(void);

void main(void)
{
TRISD=0;
TRISB=1;

RCONbits.IPEN=1; // Enable Interrupt High Priority bit
INTCONbits.GIEH=1; // Enable Global Interrupt bit
INTCONbits.RBIE=1; // Enable High Priority Interrupt

OpenPORTB (0xFF);

while (1)
{
if (!SW2) PORTB=0xFF; }

}

#pragma code isrhighcode = 0x0008

void isr_high_direct(void)
{
_asm //begin in-line assembly
goto isr_high //go to isr_high function
_endasm //end in-line assembly
}
#pragma code

#pragma interrupt isr_high

void isr_high(void)
{
INTCONbits.RBIF=0;

OpenLCD();
LCD_Set_Cursor(0,0);
putrsLCD("PORTB INTERRUPT");
for (i=0;i<6;i++) Delay10KTCYx(200);
}

發表於: 2008/2/27 19:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------