:::

論壇索引


Board index » All Posts (PSIR)




Re: 編譯時出現 "函數" is never called 的警告要怎麼關掉?
#1
資深會員
資深會員


可以關掉警告了,原來就是在 Warning level 裡面去設,點進去那個欄位時預設值是 -3,下方會出現說明如下:

Sets the compiler warning level threshold. Allowable warning levels range from -9 to 9.

我把它調小變成 -2 之後就不會再出現警告了,再調回 -3 或 -4 警告又跑出來,謝謝 Libra 大。

最後請問貼圖要怎麼設置可以直接顯示在版面上?我現在上傳的圖片都只能在另外視窗打開。

Attach file:



jpg  WARNING.jpg (63.55 KB)
2310_60efceaa79300.jpg 916X588 px

發表於: 2021/7/15 14:13
頂部


編譯時出現 "函數" is never called 的警告要怎麼關掉?
#2
資深會員
資深會員


MCU:16F819
X IDE:v5.45
XC8:v2.31

假設我設一個函數 BUZZ_STOP(),但在程式終未呼叫到,編譯時會出現下面的警告:
warning: (520) function "_BUZZ_STOP" is never called

雖然可以編譯執行,但每次看到警告就是不舒服,之前在用 XC32 寫 PIC32 系列時都沒有這種現象,但為什麼用 XC8 寫 16F 系列時會有這種警告,我在 X IDE 內找不到地方可以關掉,請問有辦法關掉這個警告嗎?

發表於: 2021/7/15 11:28
頂部


Re: 16F819 CCP 模組用 PWM 工作模式時週期和 Duty Cycle 解析度不同的疑問
#3
資深會員
資深會員


謝謝 Ryang 大的說明,我發現去改變那 2 位元的 LSB 對輸出影響不大,最簡單的方法就是把 Duty Cycle 當成 8 位元的解析度來做就好,所以就令 CCPR1L = PR2/2,這樣也會產生接近 50% 的方波。

發表於: 2021/7/15 9:25
頂部


Re: 16F819 CCP 模組用 PWM 工作模式時週期和 Duty Cycle 解析度不同的疑問
#4
資深會員
資深會員


請問 Ryang 大:

現在 16F819 跑 8MHz,所以指令週期就是 1/(8MHz/4)=0.5us
若想製造一個 PWM 週期 = 1ms(1KHz),Duty Cycle = 50% 的方波。

設 TMR2 的 Prescaler = 4,所以計算 PR2 的值 = PWM 週期 /(Prescaler×指令週期) = 1ms/(4×0.5us) = 500,
所以 PR2 = 500。

再來 Duty Cycle 是放在 CCPR1L(MSB 8位元) 和 CCP1CON 的 bit5~4(LSB 2位元),
請問這 10 位元的值該如何計算以填入 2 個暫存器內?謝謝。

發表於: 2021/7/12 11:30
頂部


Re: 16F819 CCP 模組用 PWM 工作模式時週期和 Duty Cycle 解析度不同的疑問
#5
資深會員
資深會員


原來關鍵就是 FIGURE 9-3 裡面 TMR2 右邊的 Note 1 註釋,由於 T2CON 的 prescaler 是 2-bit,所以拿來跟 TMR2 串在一起就變成 10-bit timer,這樣就可以比對了,但是 internal Q clock 是什麼東西還是沒概念,謝謝。

發表於: 2021/7/9 15:24
頂部


16F819 CCP 模組用 PWM 工作模式時週期和 Duty Cycle 解析度不同的疑問
#6
資深會員
資深會員


使用 PWM 模式時,PWM 的週期值是放在 PR2 暫存器,跟搭配的 TMR2 一樣是 8 位元。
而 Duty Cycle 是 10 位元解析度,放在 CCPR1L(MSB 8位元) 和 CCP1CON 的 bit5~4(LSB 2位元)。

依據這張時序圖,當 TMR2 = PR2 時 PWM 輸出 1,當 TMR2 = Duty Cycle 時 PWM 輸出 0。

TMR2 和 PR2 都是 8 位元,最大就是 FF=255(d),兩者互相比對沒問題,但 Duty Cycle 卻有 10 位元,最大是 3FF=1023(d),就算是 50% 工作週期也有 3FF/2=1FF=511(d)。

那 TMR2 怎麼計數都不可能跟 10 位元的值比較,但為什麼輸出可以正確,是 MCU 裡面會再做一個轉換比較嗎?

Attach file:



jpg  PWM_OUTPUT.jpg (25.41 KB)
2310_60e7b90303b5a.jpg 466X310 px

發表於: 2021/7/9 10:49
頂部


Re: PIC16 Interrup
#7
資深會員
資深會員


我在使用 XC8 寫 PIC16F 的時候也遇到這個問題,一開始我也是如同 XC8 講義 Page 116 那樣宣告中斷函數:
void interrupt ISR(void){

}

結果也是出現樓主的錯誤訊息一直編譯不通過,後來去 Google 發現這兩個帖子:
https://bbs.21ic.com/icview-2546270-1-1.html
https://bbs.csdn.net/topics/392505791

把 void interrupt 中斷名(void) 改為 void __interrupt() 中斷名(void),下劃線是兩個,於是我的中斷函數改成這樣子:
void __interrupt() ISR(void){

}

這樣就編譯通過了,為什麼要這樣子宣告才行,是 XC8 講義寫錯了嗎?有人知道原因嗎?

Attach file:



jpg  PIC16F中斷函數.jpg (112.31 KB)
2310_60dd82224b539.jpg 1245X890 px

發表於: 2021/7/1 16:52
頂部


Re: X IDE 能否產生與劇本同名稱的 HEX 檔?
#8
資深會員
資深會員


謝謝 yang 大的回覆,我目前是在不同的劇本中設型號關鍵字,然後在程式中設條件組譯判斷式,X IDE 會決定哪些哪些程式段要編譯,用某個劇本編譯完的 HEX 檔我都另外複製到其他地方並更名為型號名稱,如果分成幾個不同型號的專案,專案數太多會變的不好管理,所以希望能一個專案內多個劇本的方式來管理型號版本,希望未來的 X IDE 在劇本中能增加設定輸出 HEX 檔名稱的選項,沒設的話就用專案名稱。

發表於: 2021/2/24 16:50
頂部


X IDE 能否產生與劇本同名稱的 HEX 檔?
#9
資深會員
資深會員


大家好:

我在 X IDE 中編輯了個劇本,但編譯產生的 HEX 檔都是專案名稱例如:專案名稱.X.production.hex
能否設定成直接產生劇本的名稱例如:劇本名稱.X.production.hex
不然都會搞不清楚產生的 HEX 檔是哪一個劇本的,
不知道 X IDE 裡面有沒有這個設定?謝謝。

發表於: 2021/2/17 14:42
頂部


Re: MX470 的 RB14 讀取 AD 值偏高
資深會員
資深會員



發表於: 2019/3/20 13:45
頂部



(1) 2 3 4 ... 67 »



:::

會員登入

知識列車系列 IV – 2022 MU選粹網路研討會

http://www.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
[ more... ]
:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
https://mu.microchip.com/page/tmu
http://www.microchip.com.tw/modules/tadnews/page.php?ncsn=2&nsn=41
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... ]

教育訓練中心

課程 - 台北教育訓練中心
課程 - 新竹教育訓練中心
課程 - 高雄教育訓練中心
教育訓練中心介紹
購買 - 實驗工具
臺灣實驗板介紹與資源