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


Browsing this Thread:   1 Anonymous Users






Re: 新手求問 16F887 I/O
#4
版主
版主


查看用戶資訊
請再詳細看一下 PIC16F193x Data Sheet (DS41364B-page 105) FIGURE 7-1: INTERRUPT-ON-CHANGE BLOCK DIAGRAM 的架構。
IOCBNx & IOCBPx 用來選擇輸入腳為負緣還是上緣觸發,如兩種都要出發都設為 1。接下來有個 IOCBFx 暫存器是用來指示目前是那隻輸入腳的輸入發生了變化,中斷部分是由 INTCON 暫存器裡的 GIE + PEIE + IOCIE 來啟動中斷並由IOCIF 位元來做中斷的判知。

且IOCIF 的清除在Data Sheet 裡有說明 : Interrupt-on-Change Interrupt Flag bit
1 = When at least one of the interrupt-on-change pins changed state (must be cleared in software)
0 = None of the interrupt-on-change pins have changed state

發表於: 2010/1/6 16:40
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 新手求問 16F887 I/O
#3
新會員
新會員


查看用戶資訊
因為我程式是用mplab sim來模擬PIC16F1936. 但是我手上唯一有的實物就是PIC16F887. 所以只是把原本的程式定義稍稍改變一下就拿來用.

另外.當我使用示波器接在RB2.RB3時. 開關dipSW的動作. 卻又正常了. 並不會關掉開關時電壓還是hold住的情況. 我是不是該找外部的電路圖來看?



另外不知道能不能並在一起詢問:
之前爬文曾經有人發生過change of interrupt的旗標RBIF無法消除. 有前輩查看數據手冊時發現硬體構造中的問題. 要重新讀過PORTB一次才能清除.

如今類似的情況也發生在pic16f1936的change of interrupt旗標. Data Sheet上並沒有寫明資料. 請問前輩當時是怎樣去找到這些腳位.暫存器的電路邏輯圖呢?

發表於: 2010/1/6 16:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 新手求問 16F887 I/O
#2
版主
版主


查看用戶資訊
還沒細看你的程式先問你一個問題 : PIC16F887 內建Master IIC 介面了,為何要使用 I/O 腳來模擬 IIC 的功能?

發表於: 2010/1/6 13:30
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


新手求問 16F887 I/O
#1
新會員
新會員


查看用戶資訊
請教各位先進. 目前想要使用change interrupt來做I2C

程式寫完以後在MPLAN SIM上模擬正常時. 打算拿APP001來DEBUG. 發現用來當SDA.SCL的兩個開關.RB3正常反應. RB2則像一隻偷油吃的老鼠...一上去就永遠下不來了

我又另外寫了一個檢查用的精簡程式. 發現SIM模擬還是正常. 但是這一次 RB2.RB3兩個再WATCH上完全沒有反應 (但是很奇怪是. RB3開關打開以後還是可以發生change interrupt).

Data Sheet看上好久. 也實驗很多次.還是搞不懂. 能有前輩能指教我觀念哪裡疏忽了嗎? 謝謝.


下面是我用來實驗問題的程式...使用的是PIC16F887
#include <htc.h>

#define SDA RB3
#define ANS_SDA ANS9
#define TRIS_SDA TRISB3
#define IOC_SDA IOCB3

#define SCL RB2
#define ANS_SCL ANS8
#define TRIS_SCL TRISB2
#define IOC_SCL IOCB2

#define READ 1
#define WRITE 0
#define TURE 1
#define FALSE 0
#define HOW_MUCH_TIME 5

/***********************I2C函式.整理好後會丟到I2C.C********************************************/
void InitI2C(void);

long int Rise_Interrupt, Work_Interrupt;
void main(void)
{
GIE = 1;
InitI2C();
while(1){
}
}


/***********************組件區******************************************/
void InitI2C(void){

TRIS_SDA =1;
TRIS_SCL =1;
ANS_SDA = 0;
ANS_SCL = 0;
RBIE = 1;
IOC_SDA =1;
IOC_SCL =0;
RBIF = 0;
}

/*************************中斷向量表******************************************/

static void interrupt isr(void) // Here be interrupt function - the name is
{

if(T0IF){
if(!TRIS_SCL)
SCL = !SCL;
T0IF = 0;
}

if(RBIF){
if(!IOC_SDA&&IOC_SCL){
Rise_Interrupt =1;
}
if(IOC_SDA&&IOC_SCL&&!SCL){
IOC_SDA = 0;
}
if(IOC_SDA&&IOC_SCL&&!SDA){
IOC_SCL = 0;
Work_Interrupt = 0;
}
if(IOC_SDA&&!IOC_SCL&&SCL&&SDA){
IOC_SDA = 0;
IOC_SCL = 1;
Work_Interrupt = 1;
}
SDA =SDA;
RBIF = 0;
}

}

發表於: 2010/1/4 18:42
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... ]

教育訓練中心

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