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

論壇索引


Board index » All Posts (PICSTART)




Re: 為何PIC18只會進高優先權中斷
#1
中級會員
中級會員


謝謝!謝謝!
原來IPEN disable都是跳到0x008
小弟的疏忽

發表於: 2006/6/13 11:38
頂部


Re: 為何PIC18只會進高優先權中斷
#2
中級會員
中級會員


天阿!各位大大都誤會了。
我是要讓TMR中斷進入低優先權中斷阿。

我的程式明明做了
BCF RCON,IPEN ; Disable priority levels on interrupts
BCF IPR2,TMR3IP ; Low priority
這兩行不就已經將高低優先權DISABLE了嗎,為何還能跳進0x008高優先權中斷服務程式呢?

發表於: 2006/6/13 10:25
頂部


Re: 為何PIC18只會進高優先權中斷
#3
中級會員
中級會員


問題就是在於程式裡已經
BCF RCON,IPEN
BCF IPR2,TMR3IP
當TMR0 或是 TMR3發生中斷時,都是去執行高優先權的中斷服務程式,都不會執行低優先權中斷服務程式。

發表於: 2006/6/12 16:46
頂部


為何PIC18只會進高優先權中斷
#4
中級會員
中級會員


我寫了個測試程式,用TMR0 & TMR3中斷,
明明IPEN & TMR3IP都clear了,為何還是進到高優先權中斷。
要如何才可進低優先中斷呢?
我用MPLAB IDE v7.40。

LIST P=18F1320
#include <P18F1320.INC>

CBLOCK 0x080
WREG_TEMP
STATUS_TEMP
BSR_TEMP
ENDC

CBLOCK 0x000
EXAMPLE
ENDC

ORG 0x0000
goto Main

ORG 0x0008
bra HighInt

ORG 0x0018
movff STATUS,STATUS_TEMP
movff WREG,WREG_TEMP
movff BSR,BSR_TEMP

BCF PIR2,TMR3IF
BCF INTCON,TMR0IF

movff BSR_TEMP,BSR
movff WREG_TEMP,WREG
movff STATUS_TEMP,STATUS
retfie

HighInt:
BCF PIR2,TMR3IF
BCF INTCON,TMR0IF
retfie FAST

Main:
BCF RCON,IPEN
;SET TMR3
CLRF TMR3L
CLRF TMR3H
MOVLW 0XB0
MOVWF T3CON
;BSF IPR2,TMR3IP
BCF IPR2,TMR3IP
BSF PIE2,TMR3IE
BCF PIR2,TMR3IF
;SET TMR0
MOVLW 0XC1
MOVWF T0CON
BSF INTCON,TMR0IE

BSF INTCON,PEIE
BSF INTCON,GIE
BSF T3CON,TMR3ON
MOVF TMR0L,W
MOVF TMR3L,W
GOTO $-4
END

發表於: 2006/6/12 15:37
頂部


Re: 請教BAUD RATE 誤差率的問題
#5
中級會員
中級會員


參照:

master 寫道:
有些資料寫低於10%有些資料低於6%,基本上當然越少越好。
與其care鮑率正確性,不如挑選一個適當的系統頻率來的好。先
從datasheet挑選要用的鮑率,看看有沒有適當的系統頻率可用。

您誤會我的意思了
假如使用dsPIC30F,20MHz,無倍頻,目標baud rate=9600bps
BRG=(20MHz/4)/(9600*16)-1=31
實際baud rate=(20MHz/4)/(16*(31+1))=9765
BAUD RATE 誤差率=(9765-9600)/9600=1.7%
1.由算式看BAUD RATE 誤差率,只是表示目標與實際baud rate的差而已
2.只要BAUD RATE 誤差率不是太大,資料收發都不會有問題。(BRG=29~33收發應該都不會有錯誤)
我想知道的是,BAUD RATE 誤差率在大於多少時資料收發才會有問題,應該也可說是UART每一次SAMPLE的時間是間隔多久。由於BAUD RATE 誤差而導致SAMPLE該讀到1卻讀到0,該讀到0卻讀到1的錯誤

發表於: 2006/1/21 2:59
頂部


請教BAUD RATE 誤差率的問題
#6
中級會員
中級會員


BAUD RATE 誤差率的大小對於傳輸資料的正確性有何差異?
誤差率到多少時,傳輸一BYTE就會接收錯誤?

發表於: 2006/1/20 18:58
頂部


Re: 請教dsPIC30F2010的DEBUG模式
#7
中級會員
中級會員


我的ICD2是接到RF2/PGC and RF3/PGD,所以在configuration bits我是選擇"USE PGC/EMUC and PGD/EMUD"

燒錄功能沒有問題,就不會有接錯線的問題,而且ICD2是直接接到RF2/PGC and RF3/PGD單純作為燒錄或debug功能,並無其他線路。

發表於: 2005/12/31 13:32
頂部


請教dsPIC30F2010的DEBUG模式
#8
中級會員
中級會員


在用DEBUG模式選ICD2,按下RUN後程式就停了。為何會這樣?

外接震盪器7.2MHz,OSC選內部RC或XT都不行。
Link for ICD2有勾選了。
沒有設任何斷點。
Build all & Program traget device時也沒有任何警告或錯誤訊息。

程式就如下面:
#define __dsPIC30F2010__
#include <p30f2010.h>
unsigned int i=0,j=0;
int main(void)
{
TRISDbits.TRISD0=0;
TRISDbits.TRISD1=0;
while(1)
{
for(i=0;i<=10000;i++)
{}
PORTDbits.RD0=0;
for(i=0;i<=10000;i++)
{}
PORTDbits.RD0=1;
j++;
if(j<10)
PORTDbits.RD1= !PORTDbits.RD1;
}
}

燒到IC上執行又是正常的。
有什麼地方遺漏了嗎?


發表於: 2005/12/29 12:07
頂部


Re: HI TECH C的疑問
#9
中級會員
中級會員


在ram上有分general purpose register 與 accesses兩個,在寫asm時有時會特地將某些變數設在accesses以方便程式運作,在c上就沒有必要這樣做了嗎?

發表於: 2005/11/24 16:20
頂部


HI TECH C的疑問
#10
中級會員
中級會員


以PIC16F72為例

char a @ 0x20; //設a在位置0X20
char b; //

結果a b會使用相同的位置,請問要如何設定才會使b或其他變數自動跳過已使用的位置?

發表於: 2005/11/24 15:51
頂部



(1) 2 3 4 5 »



:::

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... ]

教育訓練中心

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