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

論壇索引


Board index » All Posts (abewu)




Re: 請教10F220的A/D功能??
#21
初級會員
初級會員


Hi! Dear Duck,
I should not say "reserve GP3 for power on reset".
The better statement should be "reserve GP3 for external reset or some other input application".

Yor are right! "POR" is one of internal reset fuction.
We may need external reset switch for just in case system is halted for some unexpected reason.
It is normally neglected if pin number is not afforable.
Nevertheless, If I have excess pin, my first ideal is keep MCRL pin as external reset.

BR
Abe Wu

發表於: 2005/11/9 11:13
頂部


Re: 請教10F220的A/D功能??
#22
初級會員
初級會員


Hi! Duck,
我要掃你興,再增你的興。

掃興點:GP3是輸入腳,不能做輸出,所以三個燈不能由三個各別接腳點亮。

增興點:
綠LED接法:電源 -> 330R電阻 -> LED綠 -> GP1。
黃LED接法:GP1 -> 330R電阻 -> LED黃 -> GP2。
紅LED接法:GP2 -> 330R電阻 -> LED紅 -> 0V。
此時,
GP1 = 0,GP2 = 0,=> 綠LED亮。
GP1 = 1,GP2 = 0,=> 黃LED亮。
GP1 = 1,GP2 = 1,=> 紅LED亮。
而且GP3還可以留給MCLR當Power On Reset用。
帥吧!

發表於: 2005/11/7 3:05
頂部


Re: 請教10F220的A/D功能??
#23
初級會員
初級會員


Hi! Duck,
很高興又見到你了。
無論如何,你需要一個參考電壓,你的問題是,腳數不夠ㄚ。

哈!哈!別被騙了。
聽我道來!
你可以增加一個參考電源,例如:MCP1525,2.5V參考電源、甚或Zerner(只是需各別調整參數)。直接接到類比輸入,此時輸入電壓固定,但是ADC結果將因電源電壓不同而改變。亦即,電源越低,讀數越高;vice versa。
是不是就可以判斷電源電壓了?

當然還有別的辦法,不過這個方法的再製性較高,應該比較實用。

發表於: 2005/11/7 2:34
頂部


Re: PIC16f877與25LC0800A的問題
#24
初級會員
初級會員


Hi! glenrice,

發表於: 2005/10/20 12:59
頂部


Re: 瘦身完成....
#25
初級會員
初級會員


Hi!~Dear Duck288,
好幾天沒上來,一上來就看到您有成果了,恭喜您。

由於您的觸發是正向信號(Low to high),不確定輸出是否有反向線路,所以順道提醒您一下:
用 PIC 處理 Triac 時要注意觸發象限問題。
我的經驗是第二、三象限比第一、四象限佳。以前Microchip的參考文獻只有 PICREF-4,若用此線路衍生,Triac 的選用要特別注意。剛才看了一下網頁發覺多了 AN958,對此問題有若干解說,值得您參考。

不過您好像是 Zero Crossing Control,不是Phase Control,影響應該比較少。

希望您試過後把成果貼給大家了解一下。

發表於: 2005/10/19 16:35
頂部


Re: BANK1變數定義問題
#26
初級會員
初級會員


Dear jubel,

完全了解你的心情了,我也有同感。
例如 Keil uV2 環境底下有 Symbol Window. 可以輕易了解變數位置。但是 MPLAB IDE 底下獨缺此 Window。

*************************************
Hi!!! 版主 可否 代悠悠眾生反應一下。
*************************************

發表於: 2005/10/12 13:06
頂部


Re: 請教關於使用C18 中軟體SPI進行讀取的問題....
#27
初級會員
初級會員


Yes!

應該用
char chX;

chX = WriteSWSPI( 0x0);

來讀取就可以了。

發表於: 2005/10/12 11:57
頂部


Re: 請教關於使用C18 中軟體SPI進行讀取的問題....
#28
初級會員
初級會員


Dear Gorgeous,

lib 的 SPI (非 sw_SPI), 基本上是支援 SPI master 及 slave 的write 及 read.

但是您可以查一下 char WriteSWSPI( char output) 的原始碼, 您會發覺兩件事。
1. 它僅支援 Master Mode.
2. 當執行 WriteSWSPI() 的同時也自 Din 腳讀取資料, 並將讀取的資料 return 給呼叫者, 注意他的 prototype 是 char.

也就是說他同時是讀與寫的程式, 但是僅支援 Master Mode.

想一想,如果要寫一個的軟體驅動 SPI slave 的「通用程式」那會是多麼複雜的事.
1. 首先 SCK 應該要是具中斷功能的接腳, 這樣 SCK 就不能任意指定接腳.
2. 而且有收發訊的速度匹配問題, 沒人能擔保「通用程式」的必然適用性。SPI protocal 的 Master 可不會等 Slave,如果 Master的速度比較快時, 資料可是會 lost的。如果用 poll 的方式處理 SCK, 就更慘。
3. 即使 SCK 是選擇具中斷功能的接腳, 各接腳的中斷方式也各有不同, ISR 會因 device 及接腳而異, 這個通用程式不好寫. Lib 未支援, 恐怕與此也脫不了關係.

當然, 如果您能提供一隻 INT 接腳, 又不在乎速度。不妨用 WriteSWSPI() 改寫一個 Slave Mode的讀寫程式。若能貼出來供大家參考, 豈不造福萬民。


發表於: 2005/10/12 11:12
頂部


Re: BANK1變數定義問題
#29
初級會員
初級會員


Dear Jubel,
您的問題晾了很幾天了,我試著回答一下吧!
1. PIC系列的Memory Banking是user要自理且要很注意的。
2. 在MPLAB IDE下,“Help” -> “Topics” -> “MPASM assembler” -> “索引” -> “Bank Selecting”可以找到以下範例:
group1 udata 0x20 ;group1 data stored at locations
;starting at 0x20 (bank 0).
group1_var1 res 1 ;group1_var1 located at 0x20.
group1_var2 res 1 ;group1_var2 located at 0x21.
group2 udata 0xA0 ;group2 data stored at locations
;starting at 0xA0 (bank 1)
group2_var1 res 1
group2_var2 res 1
RST CODE 0x0 ;The code section named RST
;is placed at program memory
;location 0x0. The next two
;instructions are placed in
;code section RST.
pagesel start ;Jumps to the location labelled
goto start ;'start'.
PGM CODE ;This is the begining of the
;code section named PGM. It is
;a relocatable code section
;since no absolute address is
;given along with directive CODE.
start
banksel group1_var1 ;This directive generates code
;to set/clear bank select bits
;RP0 & RP1 of STATUS register
;depending upon the address of
;group1_var1.
clrf group1_var1
clrf group1_var2
banksel group2_var1 ;This directive generates code
;to set/clear bank select bits
;RP0 & RP1 of STATUS register
;depending upon the address of
;group2_var1.
clrf group2_var1
clrf group2_var2
goto $ ;Go to current line (loop here)
end
3. udata-res提供relocatable 定址方式。這與您的絕對定址不同。
4. 您似乎比較喜歡絕對定址?除非有絕對必要,建議您培養使用relocatable 定址的習慣,程式的可攜性較佳。

發表於: 2005/10/11 23:04
頂部


Re: 偶又碰到問題啦....
#30
初級會員
初級會員


Dear duck288,
請注意,最後的脈衝寬度是1.1ms 不是 1.0ms。如果,最後脈寬需要 1.0ms,可修改以下指令:
1. “movlw d'30';” 改為 “movlw d'31';”
2. “movlw d'10';” 改為 “movlw d'09';”

然而一般我們在程式中會避免直接引用常數,以免一但需要變更該常數時,就要「上窮碧落下黃泉」的到處找問題,因此多半在宣告區來處理常數。
程式可作以下修改:
; -------------------------------------------------------------------------
#define N_of_LongestPulse 40 ; 最長脈寬的 N
#define N_of_ShortestPulse 11 ; 最短脈寬的 N

#define ExcutionTimes N_of_LongestPulse- N_of_ShortestPulse+1
; 執行次數
#define Bias ShortestPulse-1 ; 偏壓值

於是程式碼就可以改成:
1. “movlw d'30';” 改為 “movlw ExcutionTimes;”
2. “movlw d'10';” 改為 “movlw Bias;”
; -------------------------------------------------------------------------
這樣,只須依需要修改 N_of_LongestPulse 及 N_of_ShortestPulse 數值,再組譯即可。實際執行次數及偏壓值的計算,可交由組譯器處理。

發表於: 2005/10/11 16:05
頂部



« 1 2 (3) 4 »



:::

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

教育訓練中心

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