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

論壇索引


Board index » All Posts (yiming)




Re: 只有一個能夠輸出高電位
資深會員
資深會員


可能是Read-Modify-Write...
只要PICmicro的指令,所處理的FILE (暫存器,記憶體,和I/O的統稱),其最終的值,和指令處理前的值有關,那麼,這種指令便是所謂的Read-Modify-Write指令。因為這類指令的動作,可以再細分為三個小步驟,即是讀(READ),修改(MODIFY),接著才是寫(WRITE)。

如:ADDWF,DECF,IORWF,XORWF,BSF,BCF,‥‥等等皆是。

在使用這類指令的時候,如果所處理的FILE是I/O, 就必須要特別小心。因為,假設工作電壓為5V;而您在PORTB的8支腳,沒有串接電阻,便分別接了8顆二極體(也許是LED)到地。如果,您在先前下了"BSF PORTB,0"這道指令,使得PORTB第0腳上的LED亮了。當您再執行了”BSF PORTB,1"這道指令後,雖然備PORTB第1腳上的LED亮了,但是,PORTB第0腳上的LED卻會熄掉。原因是因為,執行”BSF PORTB,1”時,會先將整個PORTB的值往回讀,而它讀到的PORTB第0腳,卻是相當於低電位(被二極體拉為0.7V)。當它再把整個PORTB的值寫出去的時候,PORTB第0腳就被寫成低電位,自然燈就熄了。
解決之道是:串電阻,或者不要直接對I/O作Read-Modify-Write指令。

另外還有一類要注意的狀況是:如當您將”BSF PORTB,0”和”BSF PORTB,1”兩道指令相連地,沒有空檔地執行時,縱使您沒有上一段所述線路設計不良之狀況,有時候您也會發現PORTB, 0的高電位也會不見了。導致這個現象的原因是:因為也許您這兩支腳的外面接了長導線,有相當大的電容、電感性會阻止電位的變化;而且,PIC指令執行是在最後1/4週期時”寫出”,而在第一個1/4週期時”讀入”,PORTB,0還來不及升至高電位,便被下一個指令讀回去了。
解決之道是:通常在兩道指令間插入個NOP指令就可以了。

不過,PIC18有新的暫存器LATx。舉凡寫入LATx的值,皆會被映射寫至PORTx。但,從LATx讀回(也許是因Read-Modify-Write讀回)的值,則不受PORTx的影響。所以,簡單的說,想寫值到PORTx去,就只要寫到LATx去就可以了;而想從PORTx讀回值,就直接讀PORTx。 也就是說,對LATx下指令,就不必考慮"Read-Modify-Write"的現象了。


發表於: 2007/7/8 1:28
頂部


Re: Keelog的版權問題??
資深會員
資深會員


感謝版主,可以安心服用了.

發表於: 2007/7/6 10:58
頂部


Re: 關於Timer0...
資深會員
資深會員


clrwdt 在幹啥? 如果已設定 WDT_OFF 還需要此指令嗎?
clrwdt是把watch dog timer歸零,這是一個硬體重置的保護裝置(大部分的MCU都有這個東東),當watch dog timer over時會重置MCU,但你把WDT_OFF就不必使用clrwdt.
watch dog timer可以用來避免程式進入死迴圈出不來而造成當機的現象.如果不是擔心耗電的問題,建議把WDT_ON,但要記得用clrwdt來清楚避免MCU重置(建議至少5ms要清一次wdt)
當你進去sleep mode時,也可以利用wdt來喚醒MCU.
怎麼一個WDT講這麼多,真是多話...嘻嘻

一般的delay程式是延遲固定的程式所以時間的的總合是延遲時間+主程式的執行時間,麻煩的是主程式的時間並不固定,總不可能主程式一改就修改延遲時間去配合吧,而且要計算主程式的時間也太累人了.
timer則是不論主程式使用了多少時間(不可以超過100us),在進入timer一定會等到100us才開始往下執行程式,也就是說你主程式所用的時間會包含在延遲的時間之內,有了這個特性之後就可以安心的寫主程式,不用計算主程式的時間了.

而且可以用來做來較大時間的延遲.
ex:
delay_10sec:
clrf t250ms
dly_lop:
call timer
movlw .10*4 ;10 sec 更改這裡就可以改變延遲時間
subwf t250ms,w
btfss status,c
goto dly_lop
retlw .0



發表於: 2007/7/6 10:54
頂部


Keelog的版權問題??
資深會員
資深會員


請問如果從網路上下載keelog的資料和參考程式來使用PIC或其它廠牌的MCU做成產品賣出去會有侵權的問題嗎??

發表於: 2007/7/5 19:52
頂部


Re: PWM問題
資深會員
資深會員


不好意思,之前看錯了,你的例子中斷沒開也沒關係...但PR2的設定似乎沒進去...
MOVF PR2.....???
MOVWF PR2....這樣子才對吧
另外CCPR1H最好設定一下
NOP 改成 CLRWDT

發表於: 2007/7/5 9:59
頂部


Re: 請教16F917LCD用法
資深會員
資深會員


依你的需求去找LCD PANEL的廠商要sample,用現成的會比較便宜,如果要開新的會比較貴.

發表於: 2007/7/4 22:14
頂部


Re: 輸入端電壓2.5V會干擾嗎?
資深會員
資深會員


我想可以試著把R1,R2加大,再不行把+5V改成+3V,我想只要m電阻夠大2個LED應該都不會亮,最多是微亮...試試看吧..
..........................R1
P0.0------+------^^^-----|<|------+5V
''''''''''''''''''''|
''''''''''''''''''''+------^^^___|>|-------GND
...........................R2

發表於: 2007/7/4 15:31
頂部


Re: 有沒有人知道由CLKIN產生脈波調變的方法?
資深會員
資深會員


12c508 沒有AD和pwm吧???

發表於: 2007/7/4 13:26
頂部


Re: 輸入端電壓2.5V會干擾嗎?
資深會員
資深會員


呵呵~那個圖我是依你的敍述隨便畫的啦~應該不會燒IC,因為輸入端有個電阻呀...

發表於: 2007/7/4 9:28
頂部


Re: 輸入端電壓2.5V會干擾嗎?
資深會員
資深會員


我想設成輸入的時候那支I/O的狀態可能會很一直hi<-->lo,但應該不會影響到mcu,你想如果你那支I/O做RF的接收也可能是相同的狀態...我用PIC收RF的信號至今沒發生什麼問題...所以安心的用吧...有問題再來解決就好了..^^~

發表於: 2007/7/4 8:57
頂部



« 1 ... 87 88 89 (90) 91 92 93 ... 95 »



:::

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

教育訓練中心

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