• slider image 442
  • slider image 492
  • slider image 493
  • slider image 494
  • slider image 495
  • slider image 496
  • slider image 488
  • slider image 491
:::

論壇索引


Board index » All Posts (jason680)




Re: 2個變數, 也是用查表嗎
資深會員
資深會員


剛剛想到一個方法...參考一下.
如果X = Y,則
(X^4 + Y^4 )^1/4
= (X^4 + X^4 )^1/4
= (2 * X^4 )^1/4
= X * (2) ^1/4
= X * 1.189207115
~ X * 1.19
(請依精確自行考量)
若 X != Y
則我們一定可以找出
設 X >=Y, 則
Y = k * X
(例: X=5, Y=3, X=12,Y=5....)
X=5, Y=3 則
y = 0.6X
則 (X^4 + Y^4 )^1/4
= (X^4 + (0.6X)^4 )^1/4

X=12, Y=5 則
y = 0.42X
則 (X^4 + Y^4 )^1/4
= (X^4 + (0.42X)^4 )^1/4
= ....

這時,我們只要做出查表X與Y比例值查表即可得

x y ANS............., (X/Y), (ANS/X)
10 0 10.00000000, 0.0, 1
10 1 10.00024999, 0.1, 1.000024999
10 2 10.00399760, 0.2, 1.00039976
10 3 10.02018878, 0.3, 1.002018878
10 4 10.06339462, 0.4, 1.006339462
10 5 10.15271592, 0.5, 1.015271592
10 6 10.30934731, 0.6, 1.030934731
10 7 10.55271421, 0.7, 1.055271421
10 8 10.89617257, 0.8, 1.089617257
10 9 11.34414161, 0.9, 1.134414161
10 10 11.89207115, 1.0, 1.189207115

ANS = (X^4 + Y^4 )^1/4
最後 X,Y為已知,求出 Y/X = 0到1
查出 0到1的 ANS/X
最後 ANS = X * (ANS/X) = 你要的答案.

例:
X=5, Y=3
(Y/X) = (3/5) = 0.6
0.6查表,得 (ANS/X) = 1.03
ANS = X * (ANS/X) = 5 * 1.03 = 5.15
與真正答案5.154673657相差 0.004
如果查表值為 1.030934731
ANS = 5.154673655 與真正答案只差最後一位.

後註: 這個方法的準確度的影響有:
1. 與0到1的(ANS/X)有多少.
本例中為每0.1為一個查表值
2. (ANS/X)查表值中的精密度(1.03或者是1.030934731)

以上數學理論供參考(程式部份,請自行完成)謝謝!!!

發表於: 2009/8/10 11:21
頂部


Re: 2個變數, 也是用查表嗎
資深會員
資深會員


>根號開兩次也是個好方法
>只是不知道1/4次方要怎麼算

根號 = 1/2次方
開兩次根號 = (1/2)^2 = 1/4次方.....不知你的問題是什麼!!??

查表的限制是,輸入值是可被預測.
不知你的X,Y範圍是什麼!!??
X與Y是否有任何相關連,或無任何關連!!??

發表於: 2009/8/10 10:32
頂部


Re: 請問如何得知,程式及資料記憶體的使用量
資深會員
資深會員


參照:

supzmc 寫道:
我在view-->memory usage gauge 看到的結果是 program memory=24, data memory=0
我在*.map中看到 24 out of 8453 program addresses used, program memory utilization is 0%

請問:1.這樣是指我使用的程序記憶體是24byte,資料記憶體是0
嗎?
2.可否麻煩前輩們,執行下面的程序,看看此程序是否使用
的用的程序記憶體是真的是24byte,資料記憶體真的是
0
3.有人說可以在*.lst中看到使用的程式記憶體使用量,及
資料記憶體使用量,但是我的*.lst中沒有?
請問要如何做採可在*.lst中看到程式記憶體使用量,及
資料記憶體使用量



Ans 1: 算是的. 但程序記憶體是24 Word不是byte
(且 16F877, 程序記憶體 1Word = 14 bits)
Ans 2: 是的結果相同.
(只是程序記憶體單位是word,資料記憶體單位是byte)
Ans 3: 小弟還不知道怎麼設,才可以
我的*.map中有information. *.lst也是沒有

但最準,有用的information是view-->memory usage gauge

total 是你可用的,以及你用掉的有多少(而且有圖形比率)
program memory=24, total= 8192 (註:單位是word)
data memory=0, total= 368 (註:單位是byte)

至於為什麼程序記憶體1Word = 14bits,因為spec就是這樣寫!!
記得請自行看spec(仔細看)

發表於: 2009/7/10 13:43
頂部


Re: C18 是否會和特定的中文註解相衝突
資深會員
資深會員


>>nicecookie
>>我的想法則是
>>"為什麼Microchip不把MPLAB 的雙字元環境弄完整呢"

個人想法:
支持nicecookie說法,
Microchip應把MPLAB(或說C18,C30...compiler)的
雙字元支援做的更完備.

但在還沒有下一版或沒有solution之前,我們應如何自保且
安全使用呢!這應是比較重要的!!

小弟試過 "//可以允許\" 這個註解,放在其他地方也是OK的.
可能是compile有某種bug,(開發者)無人知道而以.
1.反應該bug,給開發者
2.在還沒有改善前,如何能"安全"使用中文註解呢!!!
//可以允許; <---加入";",則不再產生問題.

加入";"的方法有:
1. 可支援RE(正規式)取代的編輯器輕易做到
(//.+[^;]\s*)$ ---取代為--> $1;
2. 當然也可以寫個小程式來達成.

各位看法如何!

發表於: 2009/7/6 11:18
頂部


Re: 請問 C18 如何宣告位元變數?
資深會員
資深會員


我說的是....

你在寫code的時候
可以打

#D abc 123
#D xyz 456

在存檔前,使用 取代,將 #D 全部取代,變成#define

#define abc 123
#define xyz 456

最後存檔,才能做compile.

註:這樣做...只有一個好處,就是寫code時,可以"少打"幾個字.
由其你一時想不起來define,如何拼時.....

怪了,你沒用過"取代"功能嗎?.....

發表於: 2009/7/2 11:35
頂部


Re: 請問 C18 如何宣告位元變數?
資深會員
資深會員


>>我的編輯器是 Ultra Edit,請問也可以用 "取代" 功能嗎?
>>我在程式中打 "#D",如何可以讓 Compiler 當成 "#define" 來組譯呢?

基本上Editor都有"取代" 功能可用.

基本上#D是不能compiler的....

所以 你的code

#D abc 123
必需在compiler這個動作前變成
#define abc 123
即可. (方法之前已經說過了.)

發表於: 2009/7/2 10:20
頂部


Re: 請問 C18 如何宣告位元變數?
資深會員
資深會員


>>如何宣告可以用 #_de 取代 #define,

是的!!! 請用編輯器的"取代"功能.

建議用
#D 取代#define, 可少打更多喔!!!!

註:若不想"手動"取代功能
1.花時間"寫"個程式(或editor的巨集功能)
2.花小錢"買"程式.

發表於: 2009/7/1 17:59
頂部


Re: 請問在 MPLAB 內如何觀察編譯後的程式碼大小?
資深會員
資深會員


>>您是如何將 Datasheet 的那一頁剪下來並用紅線劃上紅匡的?
>>要用哪一種軟體來完成呢?可否傳授一下作法,感謝。

就OS(windows)內含功能.

1. PrtScr 這個鍵(按一下---把螢幕上的畫面剪下來)
2. 打開"小畫家", 貼上.....
3. 接下來看你要做什麼都可以 (當然也可以用任何的繪圖軟體)
4. 存檔
5. post上來

註:只有少數幾種情形是不能的(PrtScr剪不下來),好像是播放內容
,或有保護的東西....(很少見就是了)

發表於: 2009/7/1 11:40
頂部


Re: 請問在 MPLAB 內如何觀察編譯後的程式碼大小?
資深會員
資深會員


>>另外像 12F675
>>1 instruction = 1 word = 14 bits.
>>
>>請問這樣 14 bits 的指令在以 8bits 為單位的記憶體內要怎麼存?
>>會自動移位嗎,還是一個佔用兩個 Byte?

啊!!! 這個要自己看spec.....

註: PIC的架構,本來就(跟學校教的)不一樣....
指令的記憶體(ROM or Flash...)跟資料DATA記憶體(RAM)
是放在不同"地方"...跟其他架構的CPU,把指令,資料都使用
同一塊記憶體的方式不同.

14bits指令,就放在14bits的記憶體中(一個單位就是14bits)....


參考一下,12F675 PDF, spec page 5 (PDF page 7)
(在你的PIC spec中,都可以找到類似的CPU架構圖,請仔細看清楚了)

Attach file:



jpg  (0.00 KB)


發表於: 2009/7/1 9:57
頂部


Re: 請問 C18 設定方法 ???
資深會員
資深會員


參考一下library search path

Attach file:



jpg  (0.00 KB)


發表於: 2009/7/1 9:18
頂部



« 1 ... 110 111 112 (113) 114 115 116 ... 118 »



:::

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

教育訓練中心

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