• 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 (handy)




Re: 10F220 A/D ?
#1
新會員
新會員


參照:

jason680 寫道:
>>A/D運算時,主程式是否要等A/D完成才能離開呢?

不用等才對,但要讀值,就要等(轉換完畢才可讀)


把ADC當做一個週邊模組,設定好開始轉換後,
可以等他轉換完等再取值(常見做法)
也可以他跑他的(ADC),你跑你的(指主程式)
只是稍後再回來取值的時候,要看是不是已經轉換完成了(判斷GODONE旗標)
兩種方式各有優缺點~~就看應用的場合嚕~~

發表於: 2010/1/5 14:36
頂部


Re: Hi-Tech compiler 的問題
#2
新會員
新會員


參照:

lancer0498 寫道:
handy 您好:

我是在想是否可先寫個pic16f690的header檔,
然後將之加入在pic.h的檔案內,語法如下
#if defined(_16F690)
#include <pic16f690.h>
#endif

以上純屬實驗性質討論,尚未知可行?

另外hi-tech picc 9.7好像已有支援pic16f690了,
您可在pic.h內看到
#if defined(_16F631) || defined(_16F677) || defined(_16F685) ||\
defined(_16F687) || defined(_16F689) || defined(_16F690)
#include <pic16f685.h>
#endif

其實直接加入pic16f685.h應該是可以的


Dear lancer0498
直接加<pic16f685.h>當然也是可以的嚕~~
透過include <pic.h>或<htc.h>的方式,
只是讓HiTech的前置處理器來處理這一段include file的工作。
更方便、可攜性也提高,
算是HiTech貼心的地方啦 ^^

發表於: 2009/12/1 1:12
頂部


Re: Hi-Tech compiler 的問題
#3
新會員
新會員


參照:

lancer0498 寫道:
handy 您好

您可這麼做:

#include <pic.h> //含入pic檔

進去hi-tech picc 9.7版的include資料夾內,找出pic.h
然後按ctrl+F搜尋pic.h,找到時打開,然後按ctrl+F搜尋你選定的元件名稱,就可找到你ic的 header檔,
其實基本上你只要含入pic.h就可,pic.h會自動幫你判斷ic為何?
就自動幫你含入ic的header檔,如果你要看configration bit的設定就須看ic的 header檔

以上資料參考hi-tech picc的workshop,資料很齊全!


lancer0498大大你好,
感謝你的建議。
不過我之前的問題是在HiTech前幾版還沒支援PIC16F690系列的時候
(也就是安裝後,並不會有16F690的Header檔),那時曾經試著手動照著SPEC SFR的定義自建Header,結果Compiler似乎是不接受這種做法。

如果是以目前的情況而言,
大膽假設如果要使用Hi-Tech來寫目前最新的PIC12F1822,即使自建Header應該也是沒辦法的。

不過既然Microchip已經把HiTech併入,相信未來的整合性會更好。
再次感謝 lancer0498兄的資訊。

發表於: 2009/11/30 16:15
頂部


Re: Hi-Tech compiler 的問題
#4
新會員
新會員


參照:

jackie4371 寫道:
使用mplab ide v8.1 及Hi-Tec 的 c compiler, 當選mplab選到一顆沒有hreader file 的ic 時(在\\include內有許多pic的 .h 檔), 如選擇 pic 16f690時, 當mplab要去 buile時, 會出現下述的error,
這是哪裡出了問題呢??!!
Executing: "C:\HT-PIC\BIN\PICC.EXE" -C -E"main.cce" "main.c" -O"main.obj" -I"D:\work\TP306\firmware\V1\source" -Zg9 -O -ASMLIST -Q -MPLAB -16F690
Error[000] : Unknown flag -16F690
Halting build on first failure as requested.

另外, 要是include內找不到ic 的 .h檔, 可以去哪裡找到呢??



到美國官網去下載最近的MPLAB IDE v8.40,已經有支援PIC16F690系列了。
不過如果遇到Hi-Tech沒有支援到較新的Item,似乎也沒辦法手動去做header檔。

發表於: 2009/11/27 11:45
頂部


Re: software PWM 問題請教
#5
新會員
新會員


參照:

shpeng 寫道:
參照:

handy 寫道:
「目標是要做到6 channel 的PWM (10khz 8bit)」

既然說是Software PWM了,
那就用Polling的方式來做嚕
不過準度不好就是了。

概念像下面這樣:
//------------------------------------------
void Timer0_ISR(void){
PWM1_PIN = HIGH;
PWM2_PIN = HIGH;
PWM3_PIN = HIGH;
PWM4_PIN = HIGH;
PWM5_PIN = HIGH;
PWM6_PIN = HIGH;

RESET_TIMER0();
}

//------------------------------------------
void main(void){
Initial();
//...etc.

while(1){

if(Timer0 >= Duty1){
PWM1_PIN = LOW;
}

if(Timer0 >= Duty2){
PWM2_PIN = LOW;
}

//....etc.
}

}

//=======================

ps.這個留言版系統可以把Tab鍵的功能做進來嗎?

沒有Tab,每次看code都蠻痛苦的。>_<




while(1){
PWM1_PIN = (Timer0 <= Duty1)
PWM2_PIN = (Timer0 <= Duty2)
PWM3_PIN = (Timer0 <= Duty3)
}
可以改這樣嗎? 我不懂 C


上面那個只是概念的code
用組語也可以寫得出來。

大概做法就是用一個Timer定時中斷(1/10k = 0.1ms)
在中斷內把所有的IO拉HIGH

主迴圈內就用Polling的方式看Timer的值是不是超過設定的Duty值。
超過了就切LOW。
這樣就是一個軟體的PWM了。
只是頻率低了點、準度差了點(因為負緣是用Polling做出來的)
基本上有幾根OUTPUT PIN就可以做出幾ch的pwm。

不過。以10khz、8bit的條件,對軟體的做法來說,loading是過大了。

發表於: 2009/6/17 12:04
頂部


Re: software PWM 問題請教
#6
新會員
新會員


「目標是要做到6 channel 的PWM (10khz 8bit)」

既然說是Software PWM了,
那就用Polling的方式來做嚕
不過準度不好就是了。

概念像下面這樣:
//------------------------------------------
void Timer0_ISR(void){
PWM1_PIN = HIGH;
PWM2_PIN = HIGH;
PWM3_PIN = HIGH;
PWM4_PIN = HIGH;
PWM5_PIN = HIGH;
PWM6_PIN = HIGH;

RESET_TIMER0();
}

//------------------------------------------
void main(void){
Initial();
//...etc.

while(1){

if(Timer0 >= Duty1){
PWM1_PIN = LOW;
}

if(Timer0 >= Duty2){
PWM2_PIN = LOW;
}

//....etc.
}

}

//=======================

ps.這個留言版系統可以把Tab鍵的功能做進來嗎?

沒有Tab,每次看code都蠻痛苦的。>_<

發表於: 2009/6/16 9:50
頂部


Re: PICC 無法 BUILD...
#7
新會員
新會員


參照:

Beee 寫道:
參照:

Ryang 寫道:
[quote]

Timer0 在 PIC16F 系列是屬於自行運作的計數器,所以只要發生 0xFF 變成 0x00 的溢位就會將 T0IF 設定成為1,程式可以用 Polling 的方式不必使用中斷的方式就可以得知Timer0 的溢位。


謝謝指點 , 但沒設 TOIE , 只有 T0IF 會進入 ISR 嘛 ?這才是我質疑 要雙重 CHECK 的重點 ......

有無設立 GIE & T0IE PROGRAMER 自己心裡有數 .....


「但沒設 TOIE , 只有 T0IF 會進入 ISR 嘛 ?」
只有T0IF == 1不會進ISR
但如果有別的中斷發生,那就會進ISR了

所以這個寫法應該是建立在兩個前提:
一、多個中斷。
二、T0IE有時候會暫時關掉。

也謝謝這個討論串嚕,以前也沒去深入想過這個差別。

發表於: 2009/6/8 18:01
頂部


Re: 為何將電壓輸入至AN腳,電壓會變成0V??????
#8
新會員
新會員


像是IO設定成拉LOW輸出了?
先確認TRISA是否有設定為輸入吧。

發表於: 2009/2/26 9:55
頂部


Re: 詢問PIC16F687的PWM如何控制?
#9
新會員
新會員


沒有PWM模組,那就用軟體的方式做嚕。
Polling Timer0與Duty、Period。
概念:
當Timer0的值小於設定的Duty,輸出High。
大於Duty,輸出Low。
頂到週期,就重新開始一個新的週期。
(重設Timer0,輸出High)

因為這個pwm是靠軟體的做出來的,
所以軟體的loading會比較大,
pwm的頻率也會比較低。

Good luck~~

發表於: 2009/1/20 9:41
頂部


Re: 請問簡單的if_then_else程式
#10
新會員
新會員


1.重要的是邏輯規畫,而不是指令。
按鍵的Debounce可以用Timer0中斷去處理
若你用的是無中斷的低階PIC ,就去Polling Timer0的值
如:if(TMR0 >= TIME_BASE_PERIOD)
產生Time Base,假設為1ms。
2.假設你的按鍵設計成30ms偵測一次,那就變成:
if(TMR0 >= TIME_BASE_PERIOD){
TMR0 = 0;
TimeBase_DetSW++;
if(TimeBase_DetSW >= 30){
TimeBase_DetSW = 0;
DetectingSW();
}
}
3.以上是不使用Delay做按鍵偵測的概念。
DetectingSW()的部份
還要看你的硬體線路是Low Active或High Active,
再加個旗標、或Register,就可以做出很多變化。

4.建議儘量少用goto的方式,會破壞軟體的封裝架構。
請多以call、return、使用flag做工作間連結的方式來思考。
如:當按鍵偵測完畢。就設定一個:flag_SW_Pressed。
後面的程式再來讀這個flag,判斷是否要執行相對應的動作。

以上,希望對你有幫助嚕。

發表於: 2009/1/13 10:10
頂部



(1) 2 »



:::

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

教育訓練中心

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