tag:blogger.com,1999:blog-1900109565797314332024-02-08T06:45:13.152+08:00kowala's home<img src="http://4.bp.blogspot.com/-nt2Zxqn4QU0/TgCpTlAA6eI/AAAAAAAAAJw/S9AtczmFyiM/s1600/dido.png">
<br>這裡是我的學習筆記,陸續增加中。
<br><a href="http://kowala21.blogspot.com">
<b>
http://kowala21.blogspot.com</b></a>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.comBlogger104125tag:blogger.com,1999:blog-190010956579731433.post-34525494015430355802016-06-06T03:23:00.001+08:002016-06-07T04:57:39.982+08:00BCB6 - 2D實驗室 移動畫素上一篇 <a href="http://kowala21.blogspot.tw/2016/04/bcb6-2d.html">2D實驗室</a>,簡單介紹了畫素產生,我們使用了圖紙物件 TBitmap 來存放畫素。本篇接著介紹簡單地處理畫素移動,電腦螢幕的座標系統,是以左上為原點(0,0),向右x遞增,向下y遞增,如下圖左上角所示。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhogVWT1ShCV8P1zun4CzTtwud3b84c5QI3iBkxY-j8zJof2yLHPcRwSJmh8A-7XeS7rb0GqZ8fUGNUav1Kbp0f8JGHp3_gLrRtUzFZb_P19Tq1FK_fbSgTtkLbkohQoyETikfwcP1xiuna/s1600/a0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhogVWT1ShCV8P1zun4CzTtwud3b84c5QI3iBkxY-j8zJof2yLHPcRwSJmh8A-7XeS7rb0GqZ8fUGNUav1Kbp0f8JGHp3_gLrRtUzFZb_P19Tq1FK_fbSgTtkLbkohQoyETikfwcP1xiuna/s400/a0.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
若我們想要圖形由右下朝左上移動,如上圖,水平x減少80個畫素,垂直y減少80個畫素,這樣就可以做到由右下朝左上移動。<br />
<br />
好了,知道原理後該如何做?我希望在我們的實驗室中,按下move按鈕,圖形會朝左上移動,按下back按鈕,圖形會跑回來,如下圖。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2m3nlrtr-6RYqtkdOFSC59bHsgAx14wWugIod8Mwehm_gu_IKFeXBm2HUa1QN1RxNjDX0YJ0H0U_8prypHrg3BTBZsS7A9KbbvdIwkDRaTsL9pYPzX9LJUfP2rtz2dA4Jj4b0zWcwhRO7/s1600/a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2m3nlrtr-6RYqtkdOFSC59bHsgAx14wWugIod8Mwehm_gu_IKFeXBm2HUa1QN1RxNjDX0YJ0H0U_8prypHrg3BTBZsS7A9KbbvdIwkDRaTsL9pYPzX9LJUfP2rtz2dA4Jj4b0zWcwhRO7/s640/a.jpg" width="361" /></a></div>
那我們必須在move按鈕的按下事件中,寫右下朝左上移動,然後在back按鈕的按下事件中,寫左上朝右下移動。<br />
觀察上圖,我們要移動綠色框所圈起來的畫素,那我們要知道綠色框的左上角點與圖紙的原點(左上角) 偏移多少畫素,綠色框的寬與高是多少畫素,然後每個畫素x-80,y-80,把它寫回圖紙物件 myLab (TBitmap物件),再把 myLab 指給Image1物件,這樣就會顯示移動的樣子了。<br />
<br />
上述說明可以知道,為了移動這些像素,我們要知道好多參數,<br />
綠色框偏移值<br />
綠色框的寬與高<br />
要移動多少畫素<br />
...<br />
<br />
int ori_w; //原圖寬<br />
int ori_h; //原圖高<br />
int off_x; //矩形對原點偏移x(左上點)<br />
int off_y; //矩形對原點偏移y<br />
int box_w; //框寬度限制<br />
int box_h; //框高度限制<br />
int mov_x; //tar x 矩形移動到(左上點)<br />
int mov_y; //tar y<br />
<br />
我不想直接在按鈕的事件中撰寫代碼,這會使程式看起來凌亂,我想要在事件中只寫參數,然後把參數傳遞給我們的LIB去處理,我們可以使用結構體來簡化參數的傳遞,也就是我只需傳遞結構體的指標就可以了。做法如下,<br />
<br />
1.在 mylib.h中宣告結構體<br />
struct coordinate{ //參數結構體宣告<br />
int ori_w; //原圖寬<br />
int ori_h; //原圖高<br />
int off_x; //矩形對原點偏移x(左上點)<br />
int off_y; //矩形對原點偏移y<br />
int box_w; //框寬度限制<br />
int box_h; //框高度限制<br />
int mov_x; //tar x 矩形移動到(左上點)<br />
int mov_y; //tar y<br />
};<br />
<br />
2.順便宣告結構體指標<br />
coordinate *coor; <br />
<br />
3.在mainfrm.cpp中,新增一個結構體變數<br />
//new一個結構體參數<br />
coor = new coordinate;<br />
<br />
4.在按鈕的事件中給予座標值,呼叫函式moveTo(),把結構體指標 coor 及圖紙物件指標 myLab 傳進去,移動處理後,再把 myLab 指給Image1物件。<br />
<br />
//move 按鈕的事件 <span style="color: red;"><b>右下朝左上</b></span><br />
void __fastcall TForm1::Button2Click(TObject *Sender)<br />
{<br />
coor->ori_w=640;<br />
coor->ori_h=480;<br />
<span style="color: red;"> coor->off_x=240; //矩形對原點偏移x(左上點)</span><br />
<span style="color: red;"> coor->off_y=180; //矩形對原點偏移y</span><br />
coor->box_w=160;<br />
coor->box_h=120;<br />
<b><span style="color: red;"> coor->mov_x=160; //tar x = off_x-80</span></b><br />
<b><span style="color: red;"> coor->mov_y=100; //tar y = off_y-80</span></b><br />
moveTo(myLab,coor);<br />
Image1->Picture->Bitmap=myLab;<br />
}<br />
<br />
//back 按鈕的事件 <b><span style="color: red;">左上朝右下</span></b><br />
void __fastcall TForm1::Button3Click(TObject *Sender)<br />
{<br />
coor->ori_w=640;<br />
coor->ori_h=480;<br />
<span style="color: red;"> coor->off_x=160; //矩形對原點偏移x(左上點)</span><br />
<span style="color: red;"> coor->off_y=100; //矩形對原點偏移y</span><br />
coor->box_w=160;<br />
coor->box_h=120;<br />
<span style="color: red;"><b> coor->mov_x=240; //tar x = off_x+80</b></span><br />
<span style="color: red;"><b> coor->mov_y=180; //tar y = off_y+80</b></span><br />
moveTo(myLab,coor);<br />
Image1->Picture->Bitmap=myLab;<br />
}<br />
<br />
在 mylib.h中,移動處理函式moveTo()代碼。<br />
//move to<br />
void moveTo(Graphics::TBitmap *scr,coordinate *co){<br />
Graphics::TBitmap *tmp;//開一塊 mem<br />
tmp = new Graphics::TBitmap();<br />
tmp->PixelFormat = pf24bit; //bmp<br />
tmp->Height = co->ori_h;//圖紙 h<br />
tmp->Width = co->ori_w;//圖紙 w<br />
int i,j;<br />
int len=co->ori_w*3;//line = (byte*) {B,G,R},{B,G,R}...<br />
//設定底色<br />
for(j=0;j<co->ori_h;j++){//initial value<br />
memset(tmp->ScanLine[j],clBlack,len);//clBlack=0=0x00,clWhite=255=0xff<br />
}<br />
//開始複製 moveto tmp<br />
for(i=0;i<co->box_w;i++){<br />
for(j=0;j<co->box_h;j++){<br />
tmp->Canvas->Pixels[i+co->mov_x][j+co->mov_y] =<br />
scr->Canvas->Pixels[i+co->off_x][j+co->off_y];<br />
}<br />
}<br />
//覆蓋回去 scr<br />
for(j=0;j<co->ori_h;j++){<br />
memcpy(scr->ScanLine[j],tmp->ScanLine[j],len);<br />
}<br />
delete tmp;<br />
}<br />
<br />
這樣就完成了<br />
<br />
範例程式 <a href="https://www.dropbox.com/s/o24yg7zhvywy4my/IMGLab.rar?dl=0">IMGLab.rar</a><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com1tag:blogger.com,1999:blog-190010956579731433.post-23087769990550447472016-04-05T17:10:00.002+08:002016-04-05T23:28:04.613+08:00BCB6 - 2D實驗室本篇就是開一塊記憶體,隨便塗鴉,然後顯示出來,主要是做個環境來測試一些繪圖演算法,當然,你要當作秀圖機,開圖檔也可以的。<br />
<br />
首先用 BCB 開一個 vcl 專案,詳細請參考前面文章<br />
BCB6 視窗程式入門 <br />
<a href="http://kowala21.blogspot.tw/2013/01/bcb6.html">http://kowala21.blogspot.tw/2013/01/bcb6.html</a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUnXgcpeEOC8PnKP4XBB7GXUkmnTeB194qjwbyDEVnMmaNFvlIo16RS8r-CRFFbEdJ7BUhvC75QmckFhJwVuDG9gsD0gas7GBYzGznCn7UoJO9w-wD2-5kLCsuRGUdqzTkXAg0bRYVLTg2/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUnXgcpeEOC8PnKP4XBB7GXUkmnTeB194qjwbyDEVnMmaNFvlIo16RS8r-CRFFbEdJ7BUhvC75QmckFhJwVuDG9gsD0gas7GBYzGznCn7UoJO9w-wD2-5kLCsuRGUdqzTkXAg0bRYVLTg2/s400/01.jpg" width="400" /></a></div>
<br />
接著新增兩個按鈕,及一個 TImage 物件<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjInaT2y_Y5_bG18YpuXkvDpB6jVkUOeLnBoezmsmodId7UoXzDCwc9UF09gWNoB35QTl76utRhwXaorSdrO5f2BncG6wJ8wlEaCvE3pZnX8MZLOGS58wN8ixKwmCMNLJzcs-gd09Dr2_gF/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjInaT2y_Y5_bG18YpuXkvDpB6jVkUOeLnBoezmsmodId7UoXzDCwc9UF09gWNoB35QTl76utRhwXaorSdrO5f2BncG6wJ8wlEaCvE3pZnX8MZLOGS58wN8ixKwmCMNLJzcs-gd09Dr2_gF/s400/02.jpg" width="400" /></a></div>
<br />
把 TImage 物件屬性改成<br />
Height 480<br />
Width 640<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ1y48y-lpWuv-VK5YEyBM1SdNO1Y7NJ_F116rOSMSBo13XWqoMxh37x_OiCuo8Wfp7_28NwBMBbUAJyEDI7yZbq7zyZnBE05CyZgxwR8fGVaKuzvmIRMple5S3qBfOLmyCox-LcKtdmsh/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ1y48y-lpWuv-VK5YEyBM1SdNO1Y7NJ_F116rOSMSBo13XWqoMxh37x_OiCuo8Wfp7_28NwBMBbUAJyEDI7yZbq7zyZnBE05CyZgxwR8fGVaKuzvmIRMple5S3qBfOLmyCox-LcKtdmsh/s400/03.jpg" width="400" /></a></div>
這就是我們的工作區,但它現在是空的,我們還要新增TBitmap 物件,並指給它。<br />
我們先新增個 mylib.h ,這樣會使程式看起來較簡潔。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKn3_uCthL1xLtG3HjvelHyFhlQGZ-ptPmDS5mwXlpO0DHruuFq5UWPZ_vKD5c_5saP3ziMin7Atp6X5lgSGsABl4FDSAl5u-Q-0mU3MYWAenI3uOJNmfFxnYiHdHJ-CjgrNOdTewnpZ7-/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKn3_uCthL1xLtG3HjvelHyFhlQGZ-ptPmDS5mwXlpO0DHruuFq5UWPZ_vKD5c_5saP3ziMin7Atp6X5lgSGsABl4FDSAl5u-Q-0mU3MYWAenI3uOJNmfFxnYiHdHJ-CjgrNOdTewnpZ7-/s400/04.jpg" width="400" /></a></div>
在專案右鍵,然後新增個 h檔,再改檔名為 mylib.h<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-hrKxtr4T2X7UGRUQAlLTbypsjYpZUNwhPEzJhopfSIP-ttt5yuQgbEmA7o_YJEg0WeW0TU9Bo-kAv8UUFV7AuTeTrjj94UNBHP774S2O4pbYDFMO86kDi2KZksRSowUEpRbzXl8Qaodj/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-hrKxtr4T2X7UGRUQAlLTbypsjYpZUNwhPEzJhopfSIP-ttt5yuQgbEmA7o_YJEg0WeW0TU9Bo-kAv8UUFV7AuTeTrjj94UNBHP774S2O4pbYDFMO86kDi2KZksRSowUEpRbzXl8Qaodj/s320/05.jpg" width="222" /></a></div>
<br />
把它引入,<span style="font-size: small;"> #include "mylib.h"</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiynsVIwSpImbXDm31I44nEHToAgR8Z3Q4Ru-2xhm5o7LU2CtG5MZHoeyOektt04217cOLuwWSnhFcD_U3vB5Gb13rHVXyXjWm8FGQGeDL_UxsiKmTc0wumy2zwPJPD2bGllD1azYGiNvlS/s1600/06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiynsVIwSpImbXDm31I44nEHToAgR8Z3Q4Ru-2xhm5o7LU2CtG5MZHoeyOektt04217cOLuwWSnhFcD_U3vB5Gb13rHVXyXjWm8FGQGeDL_UxsiKmTc0wumy2zwPJPD2bGllD1azYGiNvlS/s400/06.jpg" width="400" /></a></div>
我們可以新增個圖紙物件 TBitmap,並指給TImage 物件,並為它設定屬性,指定底色。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGo2X3UMM9FCntKevrn_OFiLKg0ekhkDNJP4U2l2c5_Qnq3-QRszcmCg0Gfukq7o9JFuWMFtdZoJ4WLwvyxYJm2v3-yoHOe8iJC7E8EU-VH4qsjZE3eD3DLFIOLoIwTjCD1GjIljchDWaG/s1600/07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="348" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGo2X3UMM9FCntKevrn_OFiLKg0ekhkDNJP4U2l2c5_Qnq3-QRszcmCg0Gfukq7o9JFuWMFtdZoJ4WLwvyxYJm2v3-yoHOe8iJC7E8EU-VH4qsjZE3eD3DLFIOLoIwTjCD1GjIljchDWaG/s400/07.jpg" width="400" /></a></div>
看起來就像這樣。<br />
這樣看起來很單調,為它加一些其他東西, 我希望能在 mylib.h 中完成,所以必須寫個函式,把 TBitmap 物件傳進去。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit5chFSJsD3Royi2bnNYPP6HLNs4jKUsuP007h_k8n_vuvdpwMQyruOVLsPOOVReWofjD_pxwQG3I6TwbSz5mZM56mTCaNMdAOgKP5J97HQcn626GnCNlVYtXx43P9UlB1DKsJ9ap5EP65/s1600/08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit5chFSJsD3Royi2bnNYPP6HLNs4jKUsuP007h_k8n_vuvdpwMQyruOVLsPOOVReWofjD_pxwQG3I6TwbSz5mZM56mTCaNMdAOgKP5J97HQcn626GnCNlVYtXx43P9UlB1DKsJ9ap5EP65/s400/08.jpg" width="400" /></a></div>
<br />
然後我們可以在 mylib.h 中為所欲為,我為它加了框,畫了X,順便寫幾個字。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpMiPVFi8lZa0rCulf0vvs6alqfHeDb7Abj23rAKJj4JaibDA0veIrr5dxInX_8dF6hhigIv3O7XzvxwUtrR-3X0tZGIMZ8T6z-ZZVeW5WugihqOD2DdLWeY0ROdgZ8IsZD7Pr2HZ-qrz3/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="279" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpMiPVFi8lZa0rCulf0vvs6alqfHeDb7Abj23rAKJj4JaibDA0veIrr5dxInX_8dF6hhigIv3O7XzvxwUtrR-3X0tZGIMZ8T6z-ZZVeW5WugihqOD2DdLWeY0ROdgZ8IsZD7Pr2HZ-qrz3/s320/10.jpg" width="320" /></a></div>
<br />
mylib.h<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPFepOLoagjDV0AOWRhRq4KYM6Q5H-eU_ts8rbK93z8A9nXcC-VWF6tKSwBhkglUlejjrnu2ttkU8Av1kjSfCcLQ68AfhBQSHdeI6CRi8uvLt1AP_ssbjHfg21UurHqEhyTNTyTvulrKgl/s1600/09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPFepOLoagjDV0AOWRhRq4KYM6Q5H-eU_ts8rbK93z8A9nXcC-VWF6tKSwBhkglUlejjrnu2ttkU8Av1kjSfCcLQ68AfhBQSHdeI6CRi8uvLt1AP_ssbjHfg21UurHqEhyTNTyTvulrKgl/s320/09.jpg" width="320" /></a></div>
<br />
code如下<br />
<blockquote class="tr_bq">
<span style="font-size: x-small;">void initSCR(Graphics::TBitmap *buf){</span><br />
<span style="font-size: x-small;"> int w,h,cx,cy,left, top, right, bottom;</span><br />
<span style="font-size: x-small;"> //先在中間畫個框 160*120 TRect(left, top, right, bottom)</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pen->Color = clGreen;//綠色</span><br />
<span style="font-size: x-small;"> buf->Canvas->Brush->Style = bsClear;//框中間透明 Rectangle</span><br />
<span style="font-size: x-small;"> h=buf->Height;//480 工作區寬度</span><br />
<span style="font-size: x-small;"> w=buf->Width;//640 工作區高度</span><br />
<span style="font-size: x-small;"> cx=w/2; cy=h/2; //320*240 中心點</span><br />
<span style="font-size: x-small;"> left=cx-(160/2);//240</span><br />
<span style="font-size: x-small;"> top=cy-(120/2);//180</span><br />
<span style="font-size: x-small;"> right=cx+(160/2);//400</span><br />
<span style="font-size: x-small;"> bottom=cy+(120/2);//300</span><br />
<span style="font-size: x-small;"> buf->Canvas->Rectangle(TRect(left,top,right,bottom));//開始畫</span><br />
<span style="font-size: x-small;"> //中間畫 X,用描點的畫</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx-3][cy-3] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx-2][cy-2] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx-1][cy-1] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx][cy] = clWhite;//center point (320,240)</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx+1][cy+1] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx+2][cy+2] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx+3][cy+3] = clWhite;</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx-3][cy+3] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx-2][cy+2] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx-1][cy+1] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx][cy] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx+1][cy-1] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx+2][cy-2] = clWhite;</span><br />
<span style="font-size: x-small;"> buf->Canvas->Pixels[cx+3][cy-3] = clWhite;</span><br />
<span style="font-size: x-small;"> //再加個字</span><br />
<span style="font-size: x-small;"> buf->Canvas->Brush->Color = clGreen;//background color</span><br />
<span style="font-size: x-small;"> buf->Canvas->Font->Color = clWhite;//font color</span><br />
<span style="font-size: x-small;"> buf->Canvas->Font->Size=10;</span><br />
<span style="font-size: x-small;"> buf->Canvas->TextOutA(left+30,top+20,"再加個字");</span><br />
<span style="font-size: x-small;"> buf->Canvas->Brush->Color = clBlack;//background color</span><br />
<span style="font-size: x-small;"> buf->Canvas->Font->Color = clYellow;//font color</span><br />
<span style="font-size: x-small;"> buf->Canvas->TextOutA(left+50,top+80,"不要底色");</span><br />
<span style="font-size: x-small;">}</span></blockquote>
mainfrm.cpp <br />
code 如下<br />
<blockquote class="tr_bq">
<span style="font-size: x-small;">//---------------------------------------------------------------------------</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">#include <vcl.h></span><br />
<span style="font-size: x-small;">#pragma hdrstop</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">#include "mainfrm.h"</span><br />
<span style="font-size: x-small;">#include "mylib.h"</span><br />
<span style="font-size: x-small;">//---------------------------------------------------------------------------</span><br />
<span style="font-size: x-small;">#pragma package(smart_init)</span><br />
<span style="font-size: x-small;">#pragma resource "*.dfm"</span><br />
<span style="font-size: x-small;">TForm1 *Form1;</span><br />
<span style="font-size: x-small;">Graphics::TBitmap *myLab;//宣告圖紙,當工作區</span><br />
<span style="font-size: x-small;">//---------------------------------------------------------------------------</span><br />
<span style="font-size: x-small;">__fastcall TForm1::TForm1(TComponent* Owner)</span><br />
<span style="font-size: x-small;"> : TForm(Owner)</span><br />
<span style="font-size: x-small;">{</span><br />
<span style="font-size: x-small;"> myLab = new Graphics::TBitmap();//開一塊圖紙,當工作區</span><br />
<span style="font-size: x-small;"> myLab->PixelFormat = pf24bit; //bmp</span><br />
<span style="font-size: x-small;"> myLab->Height = 480;//圖紙 h</span><br />
<span style="font-size: x-small;"> myLab->Width = 640;//圖紙 w</span><br />
<span style="font-size: x-small;"> //設定底色</span><br />
<span style="font-size: x-small;"> myLab->Canvas->Brush->Color = clBlack;//background = clBlack</span><br />
<span style="font-size: x-small;"> myLab->Canvas->FloodFill(0,0,clBlack,fsBorder);//fsSurface,fsBorder</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"> //把物件傳進去</span><br />
<span style="font-size: x-small;"> initSCR(myLab);</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"> //指給Image1物件</span><br />
<span style="font-size: x-small;"> Form1->Image1->Picture->Bitmap=myLab;</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">}</span><br />
<span style="font-size: x-small;">//---------------------------------------------------------------------------</span><br />
<span style="font-size: x-small;">void __fastcall TForm1::Button1Click(TObject *Sender)</span><br />
<span style="font-size: x-small;">{</span><br />
<span style="font-size: x-small;"> this->Close();</span><br />
<span style="font-size: x-small;">}</span><br />
<span style="font-size: x-small;">//---------------------------------------------------------------------------</span></blockquote>
<br />
這樣就是一個簡單實驗室了<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-21449570473814385392016-03-07T11:44:00.003+08:002016-03-07T12:08:56.400+08:00BCB6 - 在 Windows8.1 安裝 mscomm32.ocx很多時候,我們會需要與 RS232 通訊,這時我們就需要 com 通訊元件。<br />
通訊元件有很多第三方元件及微軟的 mscomm32,<br />
本例是在Wwindows8.1下取得 mscomm32 與手動安裝元件。<br />
<br />
下載 mscomm32.ocx<br />
<a href="http://originaldll.com/file/mscomm32.ocx/7698.html">http://originaldll.com/file/mscomm32.ocx/7698.html</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjavrRPiimSu3SY9PSc15hkGh9PrCo8gsGtbQsphjU5oY0sqMM8kBxZ8UnXA4zWGXYlhyphenhyphenFe-ZgSRb3GLJyJYEgAe1eb5-fIZAAK9-txkNDtPlFdJQMz4lYM89oscbncpsUZNTyLveFGg-Oy/s1600/mscomm01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjavrRPiimSu3SY9PSc15hkGh9PrCo8gsGtbQsphjU5oY0sqMM8kBxZ8UnXA4zWGXYlhyphenhyphenFe-ZgSRb3GLJyJYEgAe1eb5-fIZAAK9-txkNDtPlFdJQMz4lYM89oscbncpsUZNTyLveFGg-Oy/s400/mscomm01.png" width="400" /></a></div>
<br />
<br />
上圖右下角按鈕,兩個都可以,按下後輸入隨機碼下載。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4ibJdzQC7_1eeB4BSw5gWRd8LNaBJCgmf4ea3v-NYSntqfjsB1DiJ3PgGEyRIWxuYGTWz1x34HEsKK6ih3VDRzRfvLzIS2MaxBi0Nl-PKDqtoX1U47eRWZwUU_9yFFxU1v1A4NVmMvfxi/s1600/mscomm02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4ibJdzQC7_1eeB4BSw5gWRd8LNaBJCgmf4ea3v-NYSntqfjsB1DiJ3PgGEyRIWxuYGTWz1x34HEsKK6ih3VDRzRfvLzIS2MaxBi0Nl-PKDqtoX1U47eRWZwUU_9yFFxU1v1A4NVmMvfxi/s400/mscomm02.png" width="400" /></a></div>
<br />
解壓縮可得到一個元件,只有一個。<br />
<br />
mscomm32.ocx<br />
<br />
接著是安裝 mscomm32 元件到 Windows8.1<br />
<br />
1.複製 mscomm32.ocx <br />
開檔案總管,複製 mscomm32.ocx 到 C:\Windows\SysWOW64<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwOUvaL00jFWTbfdn_pcmBxGTxTET0GdEse1ov0vvfMKlr5TL8SM8AHm3UItW0JHBwMPO88UrgqVDi6kD-GLKUngeyhN2JdXMWDE2z5opcazOzQyBCiatQAoDIIv9Z2aDoIyUOE4aMY1eg/s1600/inst01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwOUvaL00jFWTbfdn_pcmBxGTxTET0GdEse1ov0vvfMKlr5TL8SM8AHm3UItW0JHBwMPO88UrgqVDi6kD-GLKUngeyhN2JdXMWDE2z5opcazOzQyBCiatQAoDIIv9Z2aDoIyUOE4aMY1eg/s400/inst01.jpg" width="400" /></a></div>
<br />
2.安裝 mscomm32.ocx<br />
在視窗中,開啟目錄 C:\Windows\SysWOW64<br />
找到 cmd.exe ,右鍵,以管理員身分執行,<br />
一定要用管理員身分,否則權限不夠,會失敗。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi94TzYfXAwKxR7-m3sn2gO1Suw91l3OhZFy1hAgU9UGG5cRCoQMk2Ehna63sQToAyC-5okiOKEMsxeYRk8rA-xXzQRQSMfDluyqhCvoPYYoTEq6EyQ0lnDrp6EfAxw0XG92LUI6tpn1iPX/s1600/inst02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi94TzYfXAwKxR7-m3sn2gO1Suw91l3OhZFy1hAgU9UGG5cRCoQMk2Ehna63sQToAyC-5okiOKEMsxeYRk8rA-xXzQRQSMfDluyqhCvoPYYoTEq6EyQ0lnDrp6EfAxw0XG92LUI6tpn1iPX/s400/inst02.jpg" width="400" /></a></div>
執行下列命令<br />
cd C:\Windows\SysWOW64<br />
<br />
先移除註冊<br />
regsvr32 /u MSCOMM32.OCX<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieypPiCJEGvw70vNIO8Y0cjfjL0NCbqv1D9HWvISpY8pvRO844yVK9QLWaAn7pt_fUz1YdoLaxWbkKWpzWDxNmHUok4fKbdbiKpmwOP4eHmfGgBtI-rxT0RDSEpGmQf0eIOoZ_UveBo1ac/s1600/inst03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieypPiCJEGvw70vNIO8Y0cjfjL0NCbqv1D9HWvISpY8pvRO844yVK9QLWaAn7pt_fUz1YdoLaxWbkKWpzWDxNmHUok4fKbdbiKpmwOP4eHmfGgBtI-rxT0RDSEpGmQf0eIOoZ_UveBo1ac/s400/inst03.jpg" width="400" /></a></div>
再註冊<br />
regsvr32 MSCOMM32.OCX<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGEeOTzElS90wsA_q-RKCK1nJW095fI-H2tD6B5hEqZRt_I2msEQHStVAlEmdTEK-eztJgF2SAzp8TzFn6fNZRE1H5TG6wPULJtQ2pS0TVhlXm7XHJU0fTeboGcjFCmqOsLiLIwUK8GV6m/s1600/inst04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGEeOTzElS90wsA_q-RKCK1nJW095fI-H2tD6B5hEqZRt_I2msEQHStVAlEmdTEK-eztJgF2SAzp8TzFn6fNZRE1H5TG6wPULJtQ2pS0TVhlXm7XHJU0fTeboGcjFCmqOsLiLIwUK8GV6m/s400/inst04.jpg" width="400" /></a></div>
完成,試一下,OK<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9nDmxMzS1P1zGQu9TD6BZr72K6OVlzQnH0sYrHZc2hjT6OcAJ0gVov1zirjAo2968WXvTK9JhWvwRFs1agu0_is-wiqhyIZ4enJmVtYTfPdoYXQtc_hw1XtfhD_MHgN_rYBykXdJ0JE0F/s1600/inst05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9nDmxMzS1P1zGQu9TD6BZr72K6OVlzQnH0sYrHZc2hjT6OcAJ0gVov1zirjAo2968WXvTK9JhWvwRFs1agu0_is-wiqhyIZ4enJmVtYTfPdoYXQtc_hw1XtfhD_MHgN_rYBykXdJ0JE0F/s400/inst05.jpg" width="400" /></a></div>
<br />
<a href="https://www.dropbox.com/s/jmk233y27jjj8a8/mscomm32.ocx.7z?dl=0">Dropbox 下載 mscomm32.ocx </a><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.comtag:blogger.com,1999:blog-190010956579731433.post-43698238381548965562016-02-13T05:46:00.001+08:002016-03-07T12:09:20.122+08:00BCB6 EditorLineEnds.ttr issue今天看到一個不錯的小程式範例 ColorFormat,可以查顏色代碼,很方便,哪裡知道,windows8.1很不給力,BCB一直出問題,最後,終於解決了,雖不滿意,尚可接受。<br />
<br />
<div style="text-align: center;">
可愛的小程式 ColorFormat (click to see source code)</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.functionx.com/bcb/applications/colorformat.htm"><img alt="http://www.functionx.com/bcb/applications/colorformat.htm" border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG4yMEXnAIaRNfi8JXIEtaAKT6vyoiKpzHE-rBNwoYSJJ-VnvENtmAgm7EF9vCxfATv8tLsdPyfBc7xFMrX1E8O_oAKoDLJHUxB-DYBNWPRrTV_qD1I1JIPOVzzxpf4wf1nHqGJjLzxged/s400/app.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Ay1Ch77QA7H1YLuKL-H7sbNWSdc3ZUpP_kReTE4Nbtui2KOIaEgw4wERRlrllki16g8KC9Wyzez5VfFlquJchR38bkfSKNSYoWoaus8uyjLhL7WblgrnZO4F7tPKDhEgI1Lf7AFSRviM/s1600/ccc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Ay1Ch77QA7H1YLuKL-H7sbNWSdc3ZUpP_kReTE4Nbtui2KOIaEgw4wERRlrllki16g8KC9Wyzez5VfFlquJchR38bkfSKNSYoWoaus8uyjLhL7WblgrnZO4F7tPKDhEgI1Lf7AFSRviM/s320/ccc.jpg" width="280" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.dropbox.com/s/vchq0oj9bjcehk9/ColorFormat.rar?dl=0">下載 ColorFormat.rar</a></div>
<br />
上面附上已完成的 ColorFormat,調好顏色,按下按鈕,就會把顏色代碼複製到剪貼簿,然後按 Ctrl + v就可以叫出來貼上,也可以右邊 Numeric 數值輸入,0-255,真的很方便。<br />
<br />
<span style="color: red;"><b>My Question</b></span> <br />
好了,推完這支程式之後,來說說我遭遇到甚麼困難,搞了一整天。<br />
我先安裝 BCB 在 Win8.1,完成之後,開個專案,關掉 BCB,要再開啟時,悲劇了,一直錯誤,無法開啟,跳出如下對話。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj27o7kT_xrokarfkcpjE0yMOmSbJmqMA_Lv39UPuNIB6aheNaQkIHWaK_O6BFl1Ync8oXQ8UFSc3LGQUcPcomFbjmBsXBTAX_bcoSpZ0982r_w_EYUw1Jh3CnJMscBwwRCKW3JdvR92rdi/s1600/err1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj27o7kT_xrokarfkcpjE0yMOmSbJmqMA_Lv39UPuNIB6aheNaQkIHWaK_O6BFl1Ync8oXQ8UFSc3LGQUcPcomFbjmBsXBTAX_bcoSpZ0982r_w_EYUw1Jh3CnJMscBwwRCKW3JdvR92rdi/s400/err1.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4LAJPnNoy0nzbSL8f0drNeljcgVgY9FMyXPJjavlqni6KHEPyheWUp0NRuZ1a_1gt-YHvvR-F7G3AgLCue-P1h7ZwW0JzkDR0NCvR11IFiCLWZCj56dMohiZ4IaC2CoPe9OdQLhcpiHXl/s1600/err2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4LAJPnNoy0nzbSL8f0drNeljcgVgY9FMyXPJjavlqni6KHEPyheWUp0NRuZ1a_1gt-YHvvR-F7G3AgLCue-P1h7ZwW0JzkDR0NCvR11IFiCLWZCj56dMohiZ4IaC2CoPe9OdQLhcpiHXl/s400/err2.jpg" width="400" /></a></div>
<br />
重新開機又可執行一次 BCB,經過 Google 查詢,發現很多人都有這問題,指向微軟更新包的錯誤,而且到現在還沒改善。<br />
<br />
BCB執行時會建立一個檔 EditorLineEnds.ttr,在 windows temp 目錄中,奇怪的是,它會被 System 開啟,然後就不放手,以至於 BCB 要再次執行時,無法再建立該檔,就一直產生錯誤,刪也刪不掉,因為 INUSE。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK5vbpFhvx1rsviNu2XHqVzEou8RjogaoD_S4eIEOJiSgDE3jZHen7N4Xxs6VLMajGlHqW6GbnCqRWIEAktZKEkCVOOvE2id9dzBlFiqgllWfz_rCKJXvI8ZdEwVLEdKAh_HuB0fYChcIi/s1600/err3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK5vbpFhvx1rsviNu2XHqVzEou8RjogaoD_S4eIEOJiSgDE3jZHen7N4Xxs6VLMajGlHqW6GbnCqRWIEAktZKEkCVOOvE2id9dzBlFiqgllWfz_rCKJXvI8ZdEwVLEdKAh_HuB0fYChcIi/s400/err3.jpg" width="400" /></a></div>
<br />
這很可惡,總不能執行一次就重開機一次吧,後來繼續找解決方案,發現大家的解法就是改檔名,但仍然刪不掉,不過卻可以執行 BCB 而不用重開機了。<br />
<br />
國外有人是寫成批次檔來改檔名,也有寫成執行檔供人下載,但我試過,改檔名部分有一些日期會產生非法字元" / "會失敗,所以繼續研究一下,在批次檔中如何改檔名可以不重複,還是要取日期+時間,到分鐘就好,改寫如下,它主要就是把那個作怪的檔<br />
<br />
C:\Users\myCon\AppData\Local\Temp\EditorLineEnds.ttr<br />
<br />
改檔名<br />
<br />
EditorLineEnds2016-2-13.4.33.ttr <br />
<br />
然後做一個目錄,全部集中丟裏頭,這樣 BCB 就可以重複執行了,就是執行前,先執行這個批次檔,處理掉這個作怪的檔,然後再執行 BCB。<br />
<br />
批次檔 bcb.bat 請自行存成 bcb.bat,並用最高權限執行<br />
<blockquote class="tr_bq">
SET /A yy=%date:~0,4%<br />
SET /A mm=%date:~5,2%<br />
SET /A dd=%date:~8,2%<br />
SET dt=%yy%-%mm%-%dd%<br />
@echo %date% = %dt%<br />
<br />
SET /A Hou=%time:~0,2%<br />
SET /A Min=%time:~3,2%<br />
SET /A Sec=%time:~6,2%<br />
SET /A Ms=%time:~9,2%*10<br />
SET tt=%Hou%.%Min%<br />
@echo 時間 %time% = %tt%<br />
<br />
SET dttt=%dt%.%tt%<br />
@echo 日期+時間 %dttt%<br />
<br />
C:<br />
cd %Temp%<br />
<br />
if exist "EditorLineEnds.ttr" (<br />
ren EditorLineEnds.ttr EditorLineEnds%dttt%.ttr<br />
) else ( <br />
goto runbcb <br />
)<br />
if exist "dzEditorLineEndsFix" (<br />
MOVE "EditorLineEnds%dttt%.ttr" "dzEditorLineEndsFix"<br />
) else (<br />
md "dzEditorLineEndsFix"<br />
MOVE "EditorLineEnds%dttt%.ttr" "dzEditorLineEndsFix"<br />
)<br />
:runbcb<br />
mshta "javascript:alert('SUCCESS MOVE EditorLineEnds.ttr that you can run BCB fine.');close()"</blockquote>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://www.dropbox.com/s/suyiarrawswjs4k/bcb.rar?dl=0">下載 bcb.bat</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
這是在 Win8.1環境下測試,其他板沒測過。</div>
<br />
說明:<br />
<br />
SET /A yy=%date:~0,4%<br />
SET /A mm=%date:~5,2%<br />
SET /A dd=%date:~8,2%<br />
SET dt=%yy%-%mm%-%dd%<br />
@echo %date% = %dt%<br />
<br />
這是取系統日期,然後改成合法字元組合<br />
/A 表示數值,這樣可以解決空白問題<br />
<br />
date = 2016/02/13 週六<br />
<br />
經過重新組合後,會變成<br />
<br />
2016-2-13<br />
<br />
接著是時間<br />
<br />
SET /A Hou=%time:~0,2%<br />
SET /A Min=%time:~3,2%<br />
SET /A Sec=%time:~6,2%<br />
SET /A Ms=%time:~9,2%*10<br />
SET tt=%Hou%.%Min%<br />
@echo 時間 %time% = %tt%<br />
<br />
time = 5:40:29.85<br />
<br />
經過重新組合後,會變成<br />
<br />
5.40 <br />
<br />
再把這兩個合起來<br />
<br />
SET dttt=%dt%.%tt%<br />
<br />
2016-2-13.5.40 <br />
<br />
然後改檔名<br />
<br />
EditorLineEnds.ttr<br />
<br />
EditorLineEnds2016-2-13.5.40.ttr<br />
<br />
接著檢查存放目錄是否存在?不存在就做一個<br />
然後搬移進去,這樣就完成了。<br />
<br />
<b><span style="color: red;">不過,還是刪不掉,不曉得要怎麼把 inuse 解除,如果你知道的話,請留言告訴我怎麼做,謝謝!</span></b><br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-49752510777452116272016-02-03T00:15:00.002+08:002016-03-07T11:59:33.396+08:00小三通筆記小三通就是台灣到金門到大陸,去大陸走小三通,金門跟廈門真的很近,都是渡輪運輸,便宜快速,我是到廈門五通碼頭,所以本筆記介紹都以此為終點。<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
路線圖</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1sdXJAFzyBKdEdcsFW7Vl8h-bymZcUx3RsLjB-iL0ZBXGT4l6aGZlnFghqEHitW_eNLCXwXoeRNGm16BftPghZZpx6zBO0lpj5IZW93Ub7akTYJTRKK2qEhj5e1smPanVLxobBm1KKA3u/s1600/0001.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1sdXJAFzyBKdEdcsFW7Vl8h-bymZcUx3RsLjB-iL0ZBXGT4l6aGZlnFghqEHitW_eNLCXwXoeRNGm16BftPghZZpx6zBO0lpj5IZW93Ub7akTYJTRKK2qEhj5e1smPanVLxobBm1KKA3u/s400/0001.jpg" width="400" /></a></div>
台灣到金門只有航空,自己訂票比較省、有彈性,如果怕麻煩的話,可以買套票,就是機票--機場接送--船票一起包,我是自己訂票,所以做個筆記。<br />
<br />
一、訂機票金門尚義機場<br />
可以上易遊網國內線訂票,要先加入會員,然後選票,下訂單,當天完成付款。這時你會得到一組電子機票號碼,到時去機場該航空公司櫃檯,給她身分證,它就會給你登機證了。<br />
錯開假日,比較容易訂票,也可以訂到優惠票,一般越早越好,較多選擇,遇到優惠票機率比較高。<br />
易遊網 <a href="http://www.eztravel.com.tw/?in=tb0">http://www.eztravel.com.tw/?in=tb0</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY-0aAZZksp6qnO46N0ZhyZmZ2WfCP8Mgrb7YPMb-yt3mV3HUPbcoQHK87dj-MD6MspUL_LHutvKQa53uxfXyyVnU2vAkgyZSmrUHWhDKeGPgdCwVjCZYA08lRl7JGGl9_Rx6EAOlGy-xf/s1600/001.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY-0aAZZksp6qnO46N0ZhyZmZ2WfCP8Mgrb7YPMb-yt3mV3HUPbcoQHK87dj-MD6MspUL_LHutvKQa53uxfXyyVnU2vAkgyZSmrUHWhDKeGPgdCwVjCZYA08lRl7JGGl9_Rx6EAOlGy-xf/s400/001.jpg" width="400" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifcgpDQGQKKAmbvmNuQzLvrpt_uCNd3FZO_KVFvF7P4fiSHmtpKC4B8WBAGDNPWTeudRZehii-94LS2zlaZJlPY10qoDimbMo9Uwn5LkbvLTqnEJ4He23kxMxNaFRX_FpQ-b1_IQS8z7ba/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifcgpDQGQKKAmbvmNuQzLvrpt_uCNd3FZO_KVFvF7P4fiSHmtpKC4B8WBAGDNPWTeudRZehii-94LS2zlaZJlPY10qoDimbMo9Uwn5LkbvLTqnEJ4He23kxMxNaFRX_FpQ-b1_IQS8z7ba/s400/01.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
二、機場到碼頭<br />
機場外面就有排班計程車,行情是300元,跳表是305元,大約15-20分鐘車程,有認識的可以另外叫車,可以事先請她幫忙去街上買東西,比較便宜,告訴她飛機到達時間,要買甚麼,(砲彈菜刀,貢糖,一條根,陳高...),請她報價,然後錢匯過去,就行了,真的很方便,如果東西太多,那就請她幫你用寄的。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq4QMKziIinf2x10vokd_58zzpMJAjkypYIEpo-EbOsYRcGrFN25-rI9-tF2y44hymDxJiliNu2Yh7U0gHU3S_sxvMpO6tvrPHXMHqbVU1OPulHpouDMBAqWuJjjV9vAEbBf0L4o_5KIvi/s1600/011.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq4QMKziIinf2x10vokd_58zzpMJAjkypYIEpo-EbOsYRcGrFN25-rI9-tF2y44hymDxJiliNu2Yh7U0gHU3S_sxvMpO6tvrPHXMHqbVU1OPulHpouDMBAqWuJjjV9vAEbBf0L4o_5KIvi/s400/011.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZtajICpSJ2oW-HWJqDV644CaIkpyzVbDCPVpMpCngJZywHEjG1ZJLF6Uv824Wlc-IaaA11l6FbWQYLBO1dkZWwA7cIb0_yPgRkq73DFZt4hHnSYc7dKb-g5D7J492NsgOAGgGjCnxEu9X/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZtajICpSJ2oW-HWJqDV644CaIkpyzVbDCPVpMpCngJZywHEjG1ZJLF6Uv824Wlc-IaaA11l6FbWQYLBO1dkZWwA7cIb0_yPgRkq73DFZt4hHnSYc7dKb-g5D7J492NsgOAGgGjCnxEu9X/s400/02.jpg" width="400" /></a></div>
<br />
三、買船票<br />
到水頭碼頭後,拿護照去櫃台買船票,假日的話,最好是網上預訂,順便買保險。因為廈門很近,航程約30分鐘左右,船內很寬敞,並排座位有14個,船航行很穩,天氣好的話,幾乎感覺不到海浪的存在。<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxMvmQhy03bzkFylsmZPddAeY9lKpLWDfteuShTBSjrUW9WcO0EJy3RkiAKyWNz8iYxsmTQbQAcbI1epvvy2FXO7erfaifmAzwgM2I4BhS5CVKlGku-6HBj2IqRmF5gWpn29VDq-tnAF2i/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxMvmQhy03bzkFylsmZPddAeY9lKpLWDfteuShTBSjrUW9WcO0EJy3RkiAKyWNz8iYxsmTQbQAcbI1epvvy2FXO7erfaifmAzwgM2I4BhS5CVKlGku-6HBj2IqRmF5gWpn29VDq-tnAF2i/s400/03.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaeGQdv-MnGa2DcBtNAVZ8A03Lzzt7M7RGSo-a6yE5RoU-txSggJpgzx-01dmsCizCesI98apYVg0rwUj4PN8flBxAbwZFM8dzXpRKN2FPFwEeRpIoSHRVejVWzfSL86sSkagWJc75uMh7/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaeGQdv-MnGa2DcBtNAVZ8A03Lzzt7M7RGSo-a6yE5RoU-txSggJpgzx-01dmsCizCesI98apYVg0rwUj4PN8flBxAbwZFM8dzXpRKN2FPFwEeRpIoSHRVejVWzfSL86sSkagWJc75uMh7/s400/04.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
四、廈門五通碼頭<br />
到碼頭後,出關要驗台胞證,新版ID卡台胞證可以快速通關,但要先申請填表後才行,我只好排隊人工驗通關,通關後,大廳可以換 RMB,要買船票,這有張名片,可以先諮詢與訂票,外面打的(搭 TAXI)有叫車跟排班的,叫車的是沒牌的,會出事的都是這種,要搭排班的那種,有牌的。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAiuBU7Mtw2hC5RiUwRC-NLNOnpi3dkuuS3Nk6uFKcNxGGiUcXsjNTDAX8HIOf1CPoxPDYk7k38P3WBOzCjSdrz-GqYn5x4f1HhgRblHv4wNJ-vKV1kuhLAZc4wzhkCPhpvHgGWHGTjrNK/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAiuBU7Mtw2hC5RiUwRC-NLNOnpi3dkuuS3Nk6uFKcNxGGiUcXsjNTDAX8HIOf1CPoxPDYk7k38P3WBOzCjSdrz-GqYn5x4f1HhgRblHv4wNJ-vKV1kuhLAZc4wzhkCPhpvHgGWHGTjrNK/s400/05.jpg" width="400" /></a></div>
<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.comtag:blogger.com,1999:blog-190010956579731433.post-45169911044836049922014-11-08T14:34:00.001+08:002014-11-08T14:34:40.916+08:00BCB6 畢氏定理計算機最近小孩正在學畢氏定理,說簡單還算簡單,但是要用計算機按半天,還要再開根號,蠻麻煩的,就寫了這個小程式,下面有部分程式碼,為何是部分?因為視窗程式很大部分是視窗元件,是BCB自動產生的,我們多半不需管它,只需專注於核心功能寫作就行了。<br />
<br />
下載<br />
<a href="https://www.dropbox.com/s/5qx8xpz8zmhm69h/BisTheory1.rar?dl=0">https://www.dropbox.com/s/5qx8xpz8zmhm69h/BisTheory1.rar?dl=0</a> <br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBLs8wSeIqnsCHGTlZrcjI7QelVWnDoirniWl0A2mGYfTStjq1TJh7LWaG6Wy_vTJDrrt2K0500nBA204qgsfDbY5eIFN6xTYvfFYTVZFIrzkPpU6xGf9iTel8gXhwMUT35g0A37-t7vSZ/s1600/bis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBLs8wSeIqnsCHGTlZrcjI7QelVWnDoirniWl0A2mGYfTStjq1TJh7LWaG6Wy_vTJDrrt2K0500nBA204qgsfDbY5eIFN6xTYvfFYTVZFIrzkPpU6xGf9iTel8gXhwMUT35g0A37-t7vSZ/s1600/bis.png" height="320" width="307" /></a></div>
<br />
程式說明<br />
這隻程式主要有兩個部分,一是三角形輸入幾個邊,要求哪個邊判定,第二是浮點數計算問題,程式碼如下<br />
<br />
一、狀態判定,填入幾個邊了<br />int chkState(){<br /> UnicodeString s1,s2,s3;<br /> s1=edit1->Text;//1<br /> s2=edit2->Text;//3<br /> s3=edit3->Text;//5<br /> if(s1.Length()>0)mystate[1]=1;else mystate[1]=0;<br /> if(s2.Length()>0)mystate[2]=3;else mystate[2]=0;<br /> if(s3.Length()>0)mystate[3]=5;else mystate[3]=0;<br /> mystate[0]=mystate[1]+mystate[2]+mystate[3];<br /> return mystate[0];<br />}<br />
<br />
這裡只要文字框產生 change()事件啟動,會檢查三個邊,字串長度>0,並分別給定其代表值,最後加總該值傳回,<br />
a=1<br />
b=3<br />
c=5<br />
如果傳回 8 ,代表b+c=8,那就知道要求的是 a 了。<br />
<br />
二、浮點數計算<br />
浮點數計算比較麻煩,因為有精度問題,動不動就會溢位,這裡沒專門處理這問題,只是簡單的提供精度設定,溢位就會變成負值,你就手動把精度調低些就好了。<br />
精度就是靠四捨五入函式來完成,計算就是依據狀態判定來求相應的值。<br />
<br />
四捨五入,使用整數法<br />double round(double src,int n){<br /> double res;<br /> int i,k=1;<br /> for(i=0;i<n;i++)k*=10;<br /> res=int(src*k+0.5);<br /> res/=k;<br /> return res;<br />}<br />
<br />
計算 <br />
這裡沒用sqrt()函數,因為溢位時,會跳出一個對話 sqrt DOMAIN error,有點煩,所以改用求1/2平方來代替,溢位就是負值。<br />
<br />
double calculate(){<br /> a=uStrToDouble(edit1->Text);<br /> b=uStrToDouble(edit2->Text);<br /> c=uStrToDouble(edit3->Text);<br /> switch (mystate[0]){<br /> case 8://a=sqrt(c^2-b^2);<br /> b2=pow(b,2);c2=pow(c,2);<br /> a2=c2-b2;<br /> //result=sqrt(round(a2,8));<br /> result=pow(a2,0.5);<br /> break;<br /> case 6://b=sqrt(c^2-a^2);<br /> a2=pow(a,2);c2=pow(c,2);<br /> b2=c2-a2;<br /> //result=sqrt(round(b2,8));<br /> result=pow(b2,0.5);<br /> break;<br /> case 4://c=sqrt(a^2+b^2);<br /> a2=pow(a,2);b2=pow(b,2);<br /> c2=a2+b2;<br /> //result=sqrt(round(c2,8));<br /> result=pow(c2,0.5);<br /> break;<br /> }<br /> return result;<br />} <div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-3021155728145018162014-07-21T00:31:00.003+08:002014-07-21T00:31:48.867+08:00萬有引力從何而來?萬有引力從何而來?這是現在最大的謎,解開了話,UFO動力問題也解開了。<br />
<br />簡單的說,目前磁力可以被製造,馬達就是了,但萬有引力沒辦法被製造,只能觀察,<br />例如你在地球上70KG,上月球就變成42KG了<br />
<br />如果:<br />我是說如果,我們已經發現萬有引力的機制,那我們可以任意產生個引力,<br />
<br />假如我就產生個>70KG的引力,方向與地球相反<br />
<br />那我就飛起來了,不用噴氣,不用磁場(也許要,也許磁場跟引力有關),不用螺旋槳。<br />
<br />那我就是UFO了,而且好處不只這些,我根本不用考慮慣性問題,不必管那幾個G。<br />
<br />因為我的重力參考原點是我自己,不是地球,所以我的G是我自己控制,根本不用管地球的G<br /><br />
那我就可以任意大於90度轉向,而不會血管爆裂。<br />
<br />這樣說夠迷人吧,這就是解開重力之謎的好處。<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-17011113217816253792014-07-11T23:59:00.002+08:002015-12-26T07:34:27.005+08:00Arduino GY-271 HMC5883L 三軸電子羅盤傳感器測試下面是 GY-271 廠商的描述<br />
用途:測量地磁方向,測量物體靜止時候的方向,測量傳感器周圍磁力線的方向。註意,測量地磁時候容易受到周圍磁場影響,主芯片HMC5883三軸磁阻傳感器特點:<br />
<br />
1,數字量輸出:I2C數字量輸出接口,設計使用非常方便。<br />
2,尺寸小: 3x3x0.9mm LCC封裝,適合大規模量產使用。<br />
3,精度高:1-2度,內置12位A/D,OFFSET, SET/RESET 電路,不會出現磁飽和現象,不會有累加誤差。<br />
4,支持自動校準程序,簡化使用步驟,終端產品使用非常方便。<br />
5,內置自測試電路,方便量產測試,無需增加額外昂貴的測試設備。<br />
6,功耗低:供電電壓1.8V, 功耗睡眠模式-2.5uA 測量模式-0.6mA<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1ZG6SHe7w3mtzn_R3lt6oIfp355PbZ-EeOclK4kkJaxkB-qm4j5eGA3_cMKtPB-MdUkPWr3wMhU7tvjeDaTVU7P2plDQ_DwfIxvl9GIpdQbwkK3Q2kNLOIRtSMf71BoCPTWijoyW-ho_V/s1600/gy271.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1ZG6SHe7w3mtzn_R3lt6oIfp355PbZ-EeOclK4kkJaxkB-qm4j5eGA3_cMKtPB-MdUkPWr3wMhU7tvjeDaTVU7P2plDQ_DwfIxvl9GIpdQbwkK3Q2kNLOIRtSMf71BoCPTWijoyW-ho_V/s1600/gy271.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQVqY1PfjTI3si-5-jayb5uuQo06pYbMzpK4__0dt0npvmr3xSBvyr8KXRntlNJ8FvAqCmgFyMQbST157efkEXAxkb6e6uG8UJl41QQLdMNMFL7IMLfv0pk-k0yxOwmRN7E1pYq9wlfq9/s1600/gy271-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQVqY1PfjTI3si-5-jayb5uuQo06pYbMzpK4__0dt0npvmr3xSBvyr8KXRntlNJ8FvAqCmgFyMQbST157efkEXAxkb6e6uG8UJl41QQLdMNMFL7IMLfv0pk-k0yxOwmRN7E1pYq9wlfq9/s1600/gy271-1.jpg" width="400" /></a></div>
<br />
連接:<br />
只要連接VCC,GND,SDA,SCL四條線。<br />
<br />
Arduino GY-271<br />
-------------------------<br />
VCC VCC<br />
GND GND<br />
A4 SDA<br />
A5 SCL<br />
<br />
P.S.我這塊 GY-271 是可以輸入 5V DC,但有的只能輸入3.3V DC,這個要看廠家的說明。<br />
<br />
請注意:<br />
HMC5883L.cpp 中必須更改下列字句,不然編譯會出錯,這是新版Arduino IDE變動的關係。<br />
WProgram.h -> Arduino.h<br />
Wire.send() -> Wire.wirte()<br />
Wire.receice() -> Wire.read()<br />
<br />
程式碼:<br />
<br />
/*<br />
HMC5883L_Example.pde - Example sketch for integration with an HMC5883L triple axis magnetomerwe.<br />
Copyright (C) 2011 Love Electronics (loveelectronics.co.uk)<br />
<br />
This program is free software: you can redistribute it and/or modify<br />
it under the terms of the version 3 GNU General Public License as<br />
published by the Free Software Foundation.<br />
<br />
This program is distributed in the hope that it will be useful,<br />
but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
GNU General Public License for more details.<br />
<br />
You should have received a copy of the GNU General Public License<br />
along with this program. If not, see <http://www.gnu.org/licenses/>.<br />
<br />
*/<br />
<br />
// Reference the I2C Library<br />
#include <Wire.h><br />
// Reference the HMC5883L Compass Library<br />
#include "HMC5883L.h"<br />
<br />
// Store our compass as a variable.<br />
HMC5883L compass;<br />
// Record any errors that may occur in the compass.<br />
int error = 0;<br />
<br />
// Out setup routine, here we will configure the microcontroller and compass.<br />
void setup(){<br />
// Initialize the serial port.<br />
Serial.begin(9600);<br />
Serial.println("Starting the I2C interface.");<br />
Wire.begin(); // Start the I2C interface.<br />
Serial.println("Constructing new HMC5883L");<br />
compass = HMC5883L(); // Construct a new HMC5883 compass. <br />
Serial.println("Setting scale to +/- 1.3 Ga");<br />
error = compass.SetScale(1.3); // Set the scale of the compass.<br />
// If there is an error, print it out.<br />
if(error != 0) Serial.println(compass.GetErrorText(error));<br />
// Set the measurement mode to Continuous<br />
Serial.println("Setting measurement mode to continous.");<br />
error = compass.SetMeasurementMode(Measurement_Continuous);<br />
// If there is an error, print it out.<br />
if(error != 0) Serial.println(compass.GetErrorText(error));<br />
}<br />
<br />
// Our main program loop.<br />
void loop(){<br />
// Retrive the raw values from the compass (not scaled).<br />
MagnetometerRaw raw = compass.ReadRawAxis();<br />
// Retrived the scaled values from the compass (scaled to the configured scale).<br />
MagnetometerScaled scaled = compass.ReadScaledAxis();<br />
<br />
// Values are accessed like so:<br />
int MilliGauss_OnThe_XAxis = scaled.XAxis;// (or YAxis, or ZAxis)<br />
<br />
// Calculate heading when the magnetometer is level, then correct for signs of axis.<br />
float heading = atan2(scaled.YAxis, scaled.XAxis);<br />
<br />
// Once you have your heading, you must then add your 'Declination Angle', which is the 'Error' of the magnetic field in your location.<br />
// Find yours here: http://www.magnetic-declination.com/<br />
// Mine is: 2� 37' W, which is 2.617 Degrees, or (which we need) 0.0456752665 radians, I will use 0.0457<br />
// If you cannot find your Declination, comment out these two lines, your compass will be slightly off.<br />
float declinationAngle = 0.0457;<br />
heading += declinationAngle;<br />
<br />
// Correct for when signs are reversed.<br />
if(heading < 0) heading += 2*PI;<br />
<br />
// Check for wrap due to addition of declination.<br />
if(heading > 2*PI) heading -= 2*PI;<br />
<br />
// Convert radians to degrees for readability.<br />
float headingDegrees = heading * 180/M_PI; <br />
<br />
// Output the data via the serial port.<br />
Output(raw, scaled, heading, headingDegrees);<br />
<br />
// Normally we would delay the application by 66ms to allow the loop<br />
// to run at 15Hz (default bandwidth for the HMC5883L).<br />
// However since we have a long serial out (104ms at 9600) we will let<br />
// it run at its natural speed.<br />
// delay(66);<br />
}<br />
<br />
// Output the data down the serial port.<br />
void Output(MagnetometerRaw raw, MagnetometerScaled scaled, float heading, float headingDegrees){<br />
Serial.print("Raw:(x,y,z)=( ");<br />
Serial.print(raw.XAxis);<br />
Serial.print(", "); <br />
Serial.print(raw.YAxis);<br />
Serial.print(", "); <br />
Serial.print(raw.ZAxis);<br />
Serial.print(") Scaled:(x,y,z)=( "); <br />
Serial.print(scaled.XAxis);<br />
Serial.print(", "); <br />
Serial.print(scaled.YAxis);<br />
Serial.print(", "); <br />
Serial.print(scaled.ZAxis);<br />
Serial.print(") Heading: ");<br />
Serial.print(heading);<br />
Serial.print(" Radians: ");<br />
Serial.print(headingDegrees);<br />
Serial.println(" Degrees.");<br />
delay(500);<br />
}<br />
<br />
<br />
執行結果<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDPCuM5WVFlyWuB2GvW8UKzY5EppiMtFB2J86qQORLEaGN8Wu-vbutVuaWMgfvpRv3U30mTHB20eryrcYPiZosPI5Uac-b5BtZxPtyMS5e1DpvDyne87lSU-uA9VjHJ8ry8tHFonfeeoaJ/s1600/GY-271-test3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="395" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDPCuM5WVFlyWuB2GvW8UKzY5EppiMtFB2J86qQORLEaGN8Wu-vbutVuaWMgfvpRv3U30mTHB20eryrcYPiZosPI5Uac-b5BtZxPtyMS5e1DpvDyne87lSU-uA9VjHJ8ry8tHFonfeeoaJ/s1600/GY-271-test3.png" width="400" /></a></div>
<br />
它只負責讀出三軸方向磁場強度,而角度要自己去算。<br />
<br />
下載 HMC5883L LIB<br />
https://www.dropbox.com/s/h062nnde78zts1l/HMC5883L.zip<br />
<br />
參考資料<br />
Arduino連接HMC5883L三軸電子羅盤傳感器<br />
http://www.geek-workshop.com/thread-105-1-1.html<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com3tag:blogger.com,1999:blog-190010956579731433.post-61122983442939595332014-07-11T21:09:00.001+08:002014-07-12T00:16:18.130+08:00使用 Arduino Pro Mini + 驅動板 來驅動步進馬達 28BYJ-48 5VDC<br />
這個是參考別人的,只是測試資料,做個筆記 <br />
例中一次轉一圈,停5秒,再反轉一圈<br />
<br />
影片<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/siwEY3YRL1U?feature=player_embedded' frameborder='0'></iframe></div>
<br />
驅動板及步進馬達<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXX76ENjm2mRS5bejlp1nP0qjz7nqVJg7XYjSngZw_8KSoS_Gz6CDkBJvedc4d8Q8YvHSXWet3f0mGGtPFqNT-3fucjXNdncDDHT9tljPnD1pIvJCZU-3Du2ypUbjeEwr_riKDE1RuNt9A/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXX76ENjm2mRS5bejlp1nP0qjz7nqVJg7XYjSngZw_8KSoS_Gz6CDkBJvedc4d8Q8YvHSXWet3f0mGGtPFqNT-3fucjXNdncDDHT9tljPnD1pIvJCZU-3Du2ypUbjeEwr_riKDE1RuNt9A/s1600/01.jpg" height="300" width="400" /></a></div>
程式碼<br />
<br />
#include "myStepper.h"<br />
#define STEPS 2048<br />
Stepper stepper(STEPS,9,10,11,12);<br />
void setup() {<br />
stepper.SetSpeed(5);<br />
} <br />
void loop() {<br />
stepper.Step(2048);<br />
delay(5000);<br />
stepper.Step(-2048);<br />
delay(5000); <br />
}<br />
<br />
<br />
接線<br />
<br />
Arduino 驅動板<br />
-------------------------- <br />
D9 IN1<br />
D10 IN2<br />
D11 IN3<br />
D12 IN4<br />
VCC +<br />
GND -<br />
<br />
p.s.驅動板+-旁兩個JMP要CLOSE,驅動板最好獨立供電,避免 Arduino 燒毀,我只是測試會不會動,所以就直接接電用了XD<br />
<br />
說明<br />
<br />
原本應該是<br />
<br />
#include <Stepper.h><br />
<br />
但我的 Arduino IDE v1.0.5 可能是內建了同名稱 LIB 導致 Link 會一直出現錯誤<br />
所以就把它改個名子,放在同一個路徑下,這樣就可以正確編譯了<br />
<br />
#include "myStepper.h"<br />
<br />
<br />
下載<br />
https://www.dropbox.com/s/e469pclk84fsbq3/myStepper.rar<br />
<br />
參考資料<br />
http://www.geek-workshop.com<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-73280867248072151072014-06-13T10:42:00.000+08:002014-06-13T10:44:41.655+08:00Arduino 有關 PWM 的參考資料PWM 全名叫做脈衝寬度調變( Pulse Width Modulation,PWM)[1],是將類比信號 轉換為脈波的一種技術,一般轉換後脈波的週期固定,但脈波的占空比會依類比信號的大小而改變。<br />
PWM 技術是一種對類比信號電位的數字編碼方法,通過使用高解析度計數器(調製頻率)調製方波的占空比,從而實現對一個類比信號的電位進行編碼。<br />
它是一種數位控制訊號,抗干擾性較強,應用很廣,電壓和電流可直接用來進行控制對象,例如家用電器設備中的音量開關控制、採用鹵素燈泡燈具的亮度控制等等。<br />
<br />
輸出電壓的控制<br />
PWM透過對佔空比 DUTY_CYCLE 的波形產生,可以對輸出電壓達到控制目的。<br />
<br />
<div style="text-align: center;">
圖一、DUTY_CYCLE</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimqmydp8siKE__C0DI-nVrYcDoF3Gwlr06gYupw5QJdJMQhgZlCcjNK5O6AOHyBnfL9htjovNVxyeNa8MEja9OfKbll1JXFmOXL7i5Ip6h9cluc-m8h3-Hkbhc-uTthKqGx9l4_xaWEuBP/s1600/pwm1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimqmydp8siKE__C0DI-nVrYcDoF3Gwlr06gYupw5QJdJMQhgZlCcjNK5O6AOHyBnfL9htjovNVxyeNa8MEja9OfKbll1JXFmOXL7i5Ip6h9cluc-m8h3-Hkbhc-uTthKqGx9l4_xaWEuBP/s1600/pwm1.gif" height="130" width="400" /></a></div>
輸出電壓 Output_Voltage 就是佔空比乘以輸入電壓<br />
<br />
Output_Voltage = Duty_Cycle * Input_Voltage<br />
<br />
<br />
如圖一,輸入電壓是 0V-5V,佔空比是25%,輸出電壓就是<br />
<br />
Output_Voltage = 0.25 * 5 = 1.25V<br />
<br />
也就是高電位 5V 的加總平均值<br />
<br />
<br />
如輸入電壓是 0V-5V,佔空比是80%,輸出電壓就是<br />
<br />
Output_Voltage = 0.8 * 5 = 4V<br />
<br />
所以我們只需控制輸出波形,就可以決定輸出電壓了。<br />
<br />
<br />
以下討論對象是目前比較被廣泛採用的晶片 ATmega328,參考它的Datasheet [2]可知,它有三個時脈 Timer,分別是 Time0, Time1, Time2,我們可以通過對 Timer 的設定,來達到控制脈波輸出的特性。<br />
<br />
以下是三個時脈的設定說明,節錄自 QEEWiki [3],這是要對Timer設定的重要參考,它已經被整理成表格狀,還附有一個範例程式,非常方便使用。<br />
<br />
<div style="text-align: center;">
圖二、Time0</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFdpQ4ogNnEOpndyEvG9NHjoFCOE4ltwmkKlKXgax35bIRVG2o6mF5b2wzhsW8gBNkHkxjHPW3-tIReh5vaT4BaB7Y0yvsZFw51U2hyphenhyphenUt-RBCma4TF5IoGJWg1Et_YqecnPeFDhfTmEn1I/s1600/Timer0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFdpQ4ogNnEOpndyEvG9NHjoFCOE4ltwmkKlKXgax35bIRVG2o6mF5b2wzhsW8gBNkHkxjHPW3-tIReh5vaT4BaB7Y0yvsZFw51U2hyphenhyphenUt-RBCma4TF5IoGJWg1Et_YqecnPeFDhfTmEn1I/s1600/Timer0.png" height="397" width="400" /></a></div>
<div style="text-align: center;">
圖三、Time1</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-64wh7VnxVRBp2Jv_n_24P-EwWCVPn8MmKjMGoFtdlefDGg0oEwLxETFM4dRPk8LosHVhiQKt4-z5lcqOnNvo2TCWZz_tdRl6mU2g-p_2f5BiSojNJFj7Twi7PgRX5sVqR0PZepSIfAJ4/s1600/Timer1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-64wh7VnxVRBp2Jv_n_24P-EwWCVPn8MmKjMGoFtdlefDGg0oEwLxETFM4dRPk8LosHVhiQKt4-z5lcqOnNvo2TCWZz_tdRl6mU2g-p_2f5BiSojNJFj7Twi7PgRX5sVqR0PZepSIfAJ4/s1600/Timer1.png" height="371" width="400" /></a></div>
<div style="text-align: center;">
圖四、Time2 </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit_cfdPhaJYLbAE6i2qNWtJk5BWi-dnZVdvf2PuphI0p9avr-pLimurWQ_fU4hmI2y1T9i2vVzQa_ZTinCg-cSx6QA1bgOwGYNQBEuOif12hnoIkLRBXvsP7VOKQTYVhzUpAnouPF1KCa8/s1600/Timer2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit_cfdPhaJYLbAE6i2qNWtJk5BWi-dnZVdvf2PuphI0p9avr-pLimurWQ_fU4hmI2y1T9i2vVzQa_ZTinCg-cSx6QA1bgOwGYNQBEuOif12hnoIkLRBXvsP7VOKQTYVhzUpAnouPF1KCa8/s1600/Timer2.png" height="392" width="400" /></a></div>
<br />
<br />
<br />
<br />
註<br />
[1].http://zh.wikipedia.org/wiki/脈衝寬度調變<br />
[2].http://www.atmel.com/Images/doc8161.pdf <br />
[3].https://sites.google.com/site/qeewiki/books/avr-guide/pwm-on-the-atmega328<br />
<span class="LangWithName"><span lang="en"><b></b></span></span><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-86126433608521086432014-05-29T04:00:00.001+08:002014-05-29T04:06:30.322+08:00巧治糖尿病剛剛看到 YouTube 上一支關於糖尿病的影片,就順手把它貼過來了,我的親人飽受此病之苦,相信也有不少人有同樣的問題,大家可以看看。<br />
其實,肥胖還是糖尿病的主因,就是要多運動,只要瘦下去,自然可以不藥而癒,但老年人,或是工作忙碌之人,可能就很困難有運動習慣了,那另一種方法就是飲食控制,若克制不了欲望,最後只好做胃繞道手術,挨一刀,來減少養分的吸收了。 <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/Wrs7TamnjgA?feature=player_embedded' frameborder='0'></iframe></div>
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-15616505707289578402014-05-21T10:47:00.002+08:002014-05-21T23:45:01.430+08:00Arduino LCD12864 ST7920 parallel test...這是 LCD12864 ST7920 並行測試,從官網下載一個範例程式,然後修改了一小部分程式碼,來方便理解其運作,自己加上了一個 VR,修改顯示字串等等。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/QlV4MmFnMcI?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghT0nTlprQH52MdYyzZxTDmEitKlYA3zWotaEeXZ-31QZlg-rVozAwPxtcXzaErMxVgN_QZU9wg2PbqcPvYgzJHo6gTuNPf-qYB-NmVYm4t_NIeByCt71R4l_eCBeInhos3_7gvseY8mtz/s1600/000DSC_0526.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghT0nTlprQH52MdYyzZxTDmEitKlYA3zWotaEeXZ-31QZlg-rVozAwPxtcXzaErMxVgN_QZU9wg2PbqcPvYgzJHo6gTuNPf-qYB-NmVYm4t_NIeByCt71R4l_eCBeInhos3_7gvseY8mtz/s1600/000DSC_0526.jpg" height="300" width="400" /></a></div>
線路配置(並行)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy-8IQx9WA7RFtXCYFprWyIAhf5r98ieb1FSzvkDF0jW3utLqG1-jKXGJ3A4R1mM8DwqjGu1UUbTlvDIpPHTdh4qFA9v3WmlGbh4r58C0C524duEbRFX48S2fK4ordzIx1BD3poIxX_Tvn/s1600/12864draw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy-8IQx9WA7RFtXCYFprWyIAhf5r98ieb1FSzvkDF0jW3utLqG1-jKXGJ3A4R1mM8DwqjGu1UUbTlvDIpPHTdh4qFA9v3WmlGbh4r58C0C524duEbRFX48S2fK4ordzIx1BD3poIxX_Tvn/s1600/12864draw.jpg" height="250" width="400" /></a></div>
<br />
<br />
RS = 17; Analog Pin3<br />
RW = 16; Analog Pin2<br />
EN = 18; Analog Pin4<br />
D0 = 8; <br />
D1 = 9;<br />
D2 = 10; <br />
D3 = 11; <br />
D4 = 4;<br />
D5 = 5; <br />
D6 = 6; <br />
D7 = 7;<br />
PIN15 PSB = 5V;(並行)<br />
<br />
VR (3k) 配置<br />
+ 5v<br />
Analog Pin1<br />
GND <br />
<br />
官方12864網頁<br />
<a href="http://playground.arduino.cc/Code/LCD12864">http://playground.arduino.cc/Code/LCD12864</a><br />
<br />
使用 Lib<br />
LCD12864<br />
<a class="urllink" href="http://playground.arduino.cc/uploads/Code/LCD12864.zip" rel="nofollow">http://playground.arduino.cc/uploads/Code/LCD12864.zip</a><br />
<br />
官方原始碼<br />
<a class="urllink" href="http://playground.arduino.cc/uploads/Code/pongLCD.zip" rel="nofollow">http://playground.arduino.cc/uploads/Code/pongLCD.zip</a><br />
<br />
參考原始碼<br />
<blockquote class="tr_bq">
//http://playground.arduino.cc/Code/LCD12864<br />
#include <LCD12864.h><br />
int score = 0;//分數<br />
boolean lost = false;//遊戲結束<br />
int relive = 0;//復活讀秒<br />
int top=128,down=159,left=0,right=63;<br />
int Xpos = 0;//球座標 x<br />
int Ypos = 133;//球座標 y<br />
int momentumX = 2;//x增量<br />
int momentumY = 1;//y增量<br />
boolean momr = true;//球向右(x)<br />
boolean momd = true;//球向下(y)<br />
int PaddlePos = 139;// 130<PaddlePos<148 (128<y<160)<br />
void setup() {<br />
LCDA.Initialise(); // INIT SCREEN<br />
delay(500); // Some delay<br />
LCDA.Render(); // Start the Rendering process<br />
Title(); // 畫 ASCII 字元<br />
delay(500); // Some Delay<br />
}<br />
void loop(){<br />
int tmp;<br />
tmp = analogRead(1);// 讀取VR值 0-1023 <br />
PaddlePos = map(tmp,0,1023,129,149);// 把 0-1023 值轉為 130-148<br />
run();<br />
}<br />
void AI(){// BALL MOVEMENT 球移動<br />
//left=0,right=63<br />
if (Xpos+momentumX < right && momr == true) {<br />
Xpos+=momentumX;//x-><br />
}else if (Xpos+momentumX >= right && momr == true) {<br />
Xpos-=momentumX;//x->反彈<br />
momr = false;//<-x<br />
}else if (Xpos-momentumX > left && momr == false){<br />
Xpos-=momentumX;//<-x<br />
}else if (Xpos-momentumX <= left && momr == false){//反彈<-x<br />
if (Ypos+1 >= PaddlePos && Ypos < PaddlePos+10) {//擊中<br />
Xpos+=momentumX;//反彈||<-x<br />
momr = true;//x-> <br />
scored();//計分<br />
// 變化球,棒子兩端+-3<br />
if (Ypos < PaddlePos+3 || Ypos-1 > PaddlePos+7) {<br />
if (momentumY < 4) momentumY +=2;<br />
}else{<br />
if (momentumY > 1) momentumY -=1;<br />
}<br />
}else{// 沒擊中<br />
lost = true;<br />
}<br />
}<br />
//top=128,down=159<br />
if (Ypos+momentumY < down && momd == true) {//向下<br />
Ypos+=momentumY;<br />
}else if (Ypos+momentumY >= down && momd == true) {//向下反彈<br />
Ypos-=momentumY;<br />
momd = false;<br />
}else if (Ypos-momentumY > top && momd == false){//向上<br />
Ypos-=momentumY;<br />
}else if (Ypos-momentumY <= top && momd == false){//向上反彈<br />
Ypos+=momentumY;<br />
momd = true;<br />
}<br />
}<br />
void run() {//循環<br />
if (lost == false) {<br />
AI(); <br />
LCDA.DumpScreenBuffer(0,0,8,32);//清空記憶體資料(X,Y,maxX,maxY)<br />
// Draw Room (x,y,w,h),畫框(0<=X<=63),(128<=Y<=159)<br />
//top=128,down=159,left=0,right=63<br />
LCDA.FillRectangle(left,top,right,1); <br />
LCDA.FillRectangle(right,top,1,32);//60,128<br />
LCDA.FillRectangle(left,down,right,1);//0,158<br />
// Draw Ball 畫球<br />
LCDA.FillRectangle(Xpos,Ypos,2,2);// 2*3 球<br />
// Draw Paddle 畫板子<br />
LCDA.FillRectangle(1,PaddlePos,2,10);// 2*10 板子 <br />
LCDA.RenderScreenBuffer(0,0,8,32);//送出記憶體資料<br />
}else{<br />
relive++;<br />
if(relive>3000){//復活讀秒=3秒<br />
lost = false;<br />
relive=0;<br />
score=0;<br />
}<br />
}<br />
}<br />
// 秀數字<br />
void numbertobinary(char num) { //RS=1,RW=0,寫資料到內部 RAM (RS,RW,D7,D6,D5,D4,D3,D2,D1,D0)<br />
if (num == 0) LCDA.setPins(1,0,0,0,1,1,0,0,0,0); //30h=48=0<br />
else if (num == 1) LCDA.setPins(1,0,0,0,1,1,0,0,0,1); //31h=49=1<br />
else if (num == 2) LCDA.setPins(1,0,0,0,1,1,0,0,1,0); //32h=50=2<br />
else if (num == 3) LCDA.setPins(1,0,0,0,1,1,0,0,1,1); //33h=51=3<br />
else if (num == 4) LCDA.setPins(1,0,0,0,1,1,0,1,0,0); //34h=52=4<br />
else if (num == 5) LCDA.setPins(1,0,0,0,1,1,0,1,0,1); //35h=53=5<br />
else if (num == 6) LCDA.setPins(1,0,0,0,1,1,0,1,1,0); //36h=54=6<br />
else if (num == 7) LCDA.setPins(1,0,0,0,1,1,0,1,1,1); //37h=55=7<br />
else if (num == 8) LCDA.setPins(1,0,0,0,1,1,1,0,0,0); //38h=56=8<br />
else if (num == 9) LCDA.setPins(1,0,0,0,1,1,1,0,0,1); //39h=57=9<br />
}<br />
void Title() { // 秀 ASCII 字元<br />
LCDA.Draw(false,25,0);//(sw,x,?)<br />
delay(1);<br />
byte title[] = {<br />
0,1,1,0,1,0,1,1,//0x6b=k<br />
0,1,1,0,1,1,1,1,//0x6f=o<br />
0,1,1,1,0,1,1,1,//0x77=w<br />
0,1,1,0,0,0,0,1,//0x61=a<br />
0,1,1,0,1,1,0,0,//0x6f=l<br />
0,1,1,0,0,0,0,1,//0x61=a<br />
0,0,1,0,0,1,1,1,//0x27='<br />
0,1,1,1,0,0,1,1,//0x73=s<br />
0,0,1,0,0,0,0,0,//0x20= <br />
0,1,1,0,1,0,0,0,//0x68=h<br />
0,1,1,0,1,1,1,1,//0x6f=o<br />
0,1,1,0,1,1,0,1,//0x6d=m<br />
0,1,1,0,0,1,0,1 //0x65=e<br />
};<br />
int count = 0;<br />
int counter = 0;<br />
while (count < sizeof(title)/sizeof(byte)) {<br />
for (int i = count; i < count+8; i++) {<br />
LCDA.temp[counter] = title[i];<br />
counter++;<br />
}<br />
LCDA.setPins(1,0,<br />
LCDA.temp[0],LCDA.temp[1],LCDA.temp[2],LCDA.temp[3],<br />
LCDA.temp[4],LCDA.temp[5],LCDA.temp[6],LCDA.temp[7]); <br />
count += 8;<br />
counter = 0;<br />
}<br />
LCDA.Draw(true,0,0);<br />
}<br />
void scored() { // 計分+1<br />
LCDA.Draw(false,12,20);<br />
delay(1);<br />
score++;<br />
momentumX = random(3, 6);<br />
if (score < 10) {<br />
numbertobinary('0');<br />
numbertobinary('0');<br />
numbertobinary(score);<br />
}else if (score < 100) {<br />
int res = score/10;<br />
int lef = score%10;<br />
numbertobinary('0');<br />
numbertobinary(res);<br />
numbertobinary(lef);<br />
}else if (score < 1000) {<br />
int res = score/100;<br />
int lef = score%100;<br />
int res2 = lef/10;<br />
int lef2 = lef%10;<br />
numbertobinary(res);<br />
numbertobinary(res2);<br />
numbertobinary(lef2);<br />
}<br />
LCDA.Draw(true,0,0);<br />
}</blockquote>
補充說明<br />
<br />
void Title() { // 秀 ASCII 字元<br />
LCDA.Draw(false,25,0);//(sw,<span style="color: red;">x</span>,?) <br />
<br />
在文字顯示中,X座標指定,是從左上角,由0開始,分成四行,一直到右下角為止,如下表所示。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVCiBsm-5gK40KBIwk31Mnx9SW4wJ0tE75VicNiRVpFruVrjshQcVF-m3vW5vlLTFG3MgjxZ4747Jv9k99cMXwXgjj5gGYIgTgwhyxgbl7v5XsvwyAMICCazT9oHmuP0X7lm36EKmwrUAN/s1600/x-pos.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVCiBsm-5gK40KBIwk31Mnx9SW4wJ0tE75VicNiRVpFruVrjshQcVF-m3vW5vlLTFG3MgjxZ4747Jv9k99cMXwXgjj5gGYIgTgwhyxgbl7v5XsvwyAMICCazT9oHmuP0X7lm36EKmwrUAN/s1600/x-pos.png" height="82" width="400" /></a></div>
ASCII 字碼輸入<br />
<br />
LCDA.setPins(1,0,0,0,1,1,0,0,0,0); //30h=48=0<br />
<br />
setPins() 的位元如下<br />
<br />
(RS,RW,D7,D6,D5,D4,D3,D2,D1,D0)<br />
<br />
RS=1,RW=0,時,為寫資料到內部 DRAM,D0-D7 為 ASCII Code,請參考下表<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="color: red;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-jOGyl4iPH5Nl9QSGeivcN3c3EJKfJ-Wa8Ox9Pz0pUNjIV19w6nVFxKcHlEPECTslPoZmdyYwXC_WvH5duOVsZQ6mwtLpEehLwwRSjrLQdy6aWVmjb6Z8SwzjZWCZc_fTeDabt5expgOp/s1600/%E7%AC%A6%E8%99%9F%E8%A1%A8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-jOGyl4iPH5Nl9QSGeivcN3c3EJKfJ-Wa8Ox9Pz0pUNjIV19w6nVFxKcHlEPECTslPoZmdyYwXC_WvH5duOVsZQ6mwtLpEehLwwRSjrLQdy6aWVmjb6Z8SwzjZWCZc_fTeDabt5expgOp/s1600/%E7%AC%A6%E8%99%9F%E8%A1%A8.png" height="280" width="400" /></a></span></div>
例如我們要在螢幕中央顯示 7,那 X 就是 12,然後先關掉繪圖,並指定 X<br />
<br />
LCDA.Draw(<span style="color: red;">false</span>,12,0);<br />
<br />
接著輸入 7 的 ASCII CODE,查上表為 0x37 ,二進位碼 00110111 ,可由計算機轉換<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVb0hSSQOVRKw0AQGwIhOcHGgjXmfE4T-4mA_0aw_ZPUokiJW5Z1sVtD6A9n00sUSMWfbkHcrM9raV9E6eRyukRb9uHghnYatW6QTN6I9S4Sb_8fpv5ZJDK3XJddKhin0P80bN_Y7IkDAO/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVb0hSSQOVRKw0AQGwIhOcHGgjXmfE4T-4mA_0aw_ZPUokiJW5Z1sVtD6A9n00sUSMWfbkHcrM9raV9E6eRyukRb9uHghnYatW6QTN6I9S4Sb_8fpv5ZJDK3XJddKhin0P80bN_Y7IkDAO/s1600/7.png" height="366" width="400" /></a></div>
<br />
然後寫入,頭兩個位元必須是 RS=1,RW=0,後面就是二進位碼 00110111,如下<br />
<br />
LCDA.setPins(1,0,0,0,1,1,0,1,1,1);<br />
<br />
最後就是把繪圖打開,就會顯示了<br />
<br />
LCDA.Draw(<span style="color: red;">true</span>,0,0);<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com1tag:blogger.com,1999:blog-190010956579731433.post-71530612131974627542014-04-21T04:32:00.002+08:002014-04-21T04:32:54.641+08:00AutoCad 物件任意角轉正有時,會用ROTATE把物件旋轉,但轉了之後,又想把圖轉正,卻轉不回來了,我想了好久,終於被我搞出來了,做個筆記。<br />
<br />
筆記,物件轉正,及另一個對齊任意線。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpKkcTTM5VylNVgIQJrlpeTy1ntAEE_ve157V7v3wl4wtRoWNhpqa0OCvf_afjBMNLVujtfP6JJE1eVcpWgOct05jUg5qwJShXdMhGtfzG1v3_Sgz7PXYsV685QcVog8IwH8H5Sl46tgo_/s1600/DSC_0442.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpKkcTTM5VylNVgIQJrlpeTy1ntAEE_ve157V7v3wl4wtRoWNhpqa0OCvf_afjBMNLVujtfP6JJE1eVcpWgOct05jUg5qwJShXdMhGtfzG1v3_Sgz7PXYsV685QcVog8IwH8H5Sl46tgo_/s1600/DSC_0442.jpg" height="305" width="400" /></a></div>
<br />
實例<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIbgkQQhkx9FCGMzNX1bF77QraoaliIH13qqOREZdRpzNnL0VlSU6hb_cxL9NdHLthDWfrJRsHLJBKiUAn93_qpT-bOGBNXVLUFX3Gy1CLKd24YiC41dB3H8xaO-wSeBSBzjEwiMizQuBI/s1600/DSC_0426.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIbgkQQhkx9FCGMzNX1bF77QraoaliIH13qqOREZdRpzNnL0VlSU6hb_cxL9NdHLthDWfrJRsHLJBKiUAn93_qpT-bOGBNXVLUFX3Gy1CLKd24YiC41dB3H8xaO-wSeBSBzjEwiMizQuBI/s1600/DSC_0426.jpg" height="300" width="400" /></a></div>
<br />
先做兩條輔助線,水平線跟機頭中心線對水平線的鏡射線,就是大約30度那條。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY1cRBD6Cw-4FHQO-G3aeX_yKC48t-NdUSkKBFnrvTXpPSsjEL-kxLX6tvCvcY2NL3ICGwNuOuoP7ZiH20sBKkUpIImfuXkCKT2d8nZPmH8ZZAzDG_PZeibmRk0jn11sSK-SJhXg_5wn2u/s1600/DSC_0434.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY1cRBD6Cw-4FHQO-G3aeX_yKC48t-NdUSkKBFnrvTXpPSsjEL-kxLX6tvCvcY2NL3ICGwNuOuoP7ZiH20sBKkUpIImfuXkCKT2d8nZPmH8ZZAzDG_PZeibmRk0jn11sSK-SJhXg_5wn2u/s1600/DSC_0434.jpg" height="300" width="400" /></a></div>
<br />
選機頭物件,使用ROTATE指令,以上述兩線交點為基準點,旋轉至大約30度那條端點。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc2lr7sJP_Ymt1w36d-toKYPNeHvhTWWGBLZ93Y8gu0e5I5frPb0iCWVE9sJjNm4eYfsmFlk4FmbjPRj5kMqQegmpJIWdMFcNAsS0Cxf4dxJ64ouqSKtzQ_MV3iC8KM6l8WJQB3US1w_vr/s1600/DSC_0437.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc2lr7sJP_Ymt1w36d-toKYPNeHvhTWWGBLZ93Y8gu0e5I5frPb0iCWVE9sJjNm4eYfsmFlk4FmbjPRj5kMqQegmpJIWdMFcNAsS0Cxf4dxJ64ouqSKtzQ_MV3iC8KM6l8WJQB3US1w_vr/s1600/DSC_0437.jpg" height="300" width="400" /></a></div>
<br />
清掉輔助線,完成。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFnl2NRrnvtOU7CEIOuvevYKPqoUO2hiRvQrzJVbi-BK8JVxfkNA09CTIgNeKo4YrlehTu22WgTYKHcCNL3YBbcIlxCt1jGZXKgsMQO12S5DHHtIxu-MJvA2vpEoQupH7TjQnrsIHPrb4m/s1600/DSC_0439.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFnl2NRrnvtOU7CEIOuvevYKPqoUO2hiRvQrzJVbi-BK8JVxfkNA09CTIgNeKo4YrlehTu22WgTYKHcCNL3YBbcIlxCt1jGZXKgsMQO12S5DHHtIxu-MJvA2vpEoQupH7TjQnrsIHPrb4m/s1600/DSC_0439.jpg" height="300" width="400" /></a></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-45828687937934095542014-04-08T21:44:00.001+08:002014-05-20T01:07:54.798+08:00快點通過服貿,貨貿,這比TPP重要太多了 那些學生沒有正當性,玩不下去了,結束了一場鬧劇,不然每天新聞吵來吵去的,很煩的。<br />
<br />
世界已經悄悄的改變,現在全世界都在搶大陸市場,大陸即將步入全球最大的消費市場,以前世界工廠使大陸累積財富,未來是13E人口的消費力量養活全世界,
很多商業行為是要搶個先機,卡個位,別在起跑點就敗給韓國了,別因為為反對而反對的民進黨而把台灣葬送掉,請快點通過服貿,貨貿,這比TPP重要太多了。<br />
<br />
台灣的物流業很不給力,台灣的產品要宅配到全世界,成本高的嚇人,反觀大陸的物流到全世界,快速又廉價,這關節沒搞好,台灣零售業、宅經濟出不去的,不利中小企業發展。<br />
<br />
想說兩句對服貿的看法嗎?來這裡吧。<br />
<br />
<a href="https://www.youtube.com/watch?v=cea-Q-TIcrU">張忠謀給大家的一堂課 「不簽服貿台灣玩完」到底誰在嚇唬誰!?1030407-02 </a><br />
https://www.youtube.com/watch?v=cea-Q-TIcrU<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-38957103134295717372014-03-20T21:16:00.000+08:002014-03-21T00:00:58.380+08:00蘇X昌的陰謀,拉學生當打手。看看最近的新聞,亂七八糟,實在不得不說,看看那麼多群眾,去問問服貿是什麼?看有幾個答得出來,答出的有幾個正確。<br />
那他們知道去幹麻?一切都是被利用,待我細細說來。<br />
<br />
一、民進黨的困境<br />
大家都知道,中國的進步,即將成為世界第一大經濟體,台灣的邊緣化,此消彼長,越發的獨立不可行,反而統一變成趨勢,台灣只是美國對付中國,牽制中國的一顆棋子,台獨黨綱的民進黨也知道趨勢所在,小英的敗選,謝X廷訪中,都是暗示著民進黨的轉型,放棄台獨黨綱,非左非右向中靠,唯有如此,才能吸引到反馬的中間選民,才能贏得執政,成為真正的反對黨。<br />
<br />
二、馬英九的無能<br />
馬英九的無能源自於它的個性,優柔寡斷,胸襟狹隘 ,不能用人,所以一些不錯的政策,到他手裡就變爛了,王金平事件,服貿協定...都是,王金平藍皮綠骨,八面玲瓏,是該拔,但不至於開除黨籍,服貿原本是中國的統戰,讓利台灣,目的是收攬台灣民心,結果都變樣了。<br />
提醒大家,反馬跟服貿是兩回事,別被有心人給利用了,最後使台灣喪失競爭力,企業被逼的棄守台灣。 <br />
<br />
三、前進總統大位<br />
這是蘇一直再做的春秋大夢,學生打手只是它的一石二鳥之計,首先就緊咬服貿,抹紅藍營,理由是"黑箱服貿",切~這也是理由 = =<br />
請問它是行政院長還是總統,有什麼政策難到還要請示它嗎?只要是福國利民的,有何不可?可笑的是,居然能鬧那麼久,還拖了一群學生去鬧,我建議調查局去查查誰背後唆使,扇動群眾。<br />
再來是製造刻板印象,服貿=賣台=中共同路人,這樣可以鞏固一些無知的群眾,又可以打壓小英跟謝X廷,這些希望民進黨轉型、進步的推手,被抹紅,最後再趁勢拉幫結派,奪取黨主席之位,上看總統大選。<br />
<br />
四、胡說八道的抱怨<br />
我真的不知道,台灣的民眾那麼弱智,台灣的學生,那麼的無知,連這種理由"黑箱服貿",都能把人耍得團團轉,真好笑。那個清大的什麼學生,丟臉死了,不知尊敬師長,"根本"都不懂的人,還在那裏泛政治,建議他回家研究一下小學而大遺,孰為小孰為大。<br />
<br />
五、未來展望 <br />
還是一句老話,現在全世界都想跟中國做生意,中國的13E人口市場大餅,可以養活全世界,連敵對的日本也在擔憂,失去中國市場的經濟該如何走下去,還動腦筋到台灣身上,在台設立公司,以台名義進軍中國,而今日中國為了統一,讓利台灣,服貿就是想要把台灣視為同一國,消除一切障礙,這比任何優惠還優惠,卻被這群豬搞成這樣。<br />
說句難聽的,你台灣不要,人家韓國搶著要呢,還有東盟呢,等被別人卡位完,再怨嘆進入中國市場太慢,人家中國可是把最好的位子留給你了,自己給臉不要臉。<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-90880123310542148282014-03-19T01:38:00.001+08:002014-03-19T01:43:52.002+08:00Arduino I2C Test最近迷上了這個小東西,覺得還蠻有趣,以後可能會 POST 一些相關的測試上來。<br />
<br />
先貼個 I2C 主從架構的連接通訊<br />
<br />
主機是 UNO,從機是 Pro Mini<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtha5zFo7CCYOIjY5kQp3ov1qg5nn_t1AmkYNbpciEnb-yzHkXnQj0cixdCYEaT5Sx-40lhqhejEigIkHATRNDSSOXWPhKumDFoGBeuw61tov-qRLU8tiykFyAHrg4LMjf97waTyZ9R0zY/s1600/I2C.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtha5zFo7CCYOIjY5kQp3ov1qg5nn_t1AmkYNbpciEnb-yzHkXnQj0cixdCYEaT5Sx-40lhqhejEigIkHATRNDSSOXWPhKumDFoGBeuw61tov-qRLU8tiykFyAHrg4LMjf97waTyZ9R0zY/s1600/I2C.jpg" height="347" width="400" /></a></div>
<br />
Pin 腳是固定的,接線(固定這樣接)<br />
<br />
UNO --- Pro Mini<br />
-------------------<br />
A4 ------ A4 (SDA)<br />
A5 ------ A5 (SCL)<br />
5V ------ VCC<br />
GND ------ GND<br />
<br />
主機程式 (Master)<br />
<br />
#include <Wire.h><br />
void setup(){<br />
Wire.begin();<br />
Serial.begin(9600);<br />
Serial.println("Ready Master");<br />
}<br />
void loop(){<br />
int val;<br />
if(Serial.available()>0){<br />
val=Serial.read();<br />
if(val==49){//49='1'<br />
Wire.beginTransmission(4);//connect to slave 4<br />
Wire.write(1);<br />
Wire.endTransmission();<br />
Serial.println("49 TURN ON LED");<br />
delay(10);<br />
}else if(val==50){//2<br />
Wire.beginTransmission(4);//connect to slave 4<br />
Wire.write(0);<br />
Wire.endTransmission();<br />
Serial.println("50 TURN OFF LED");<br />
delay(10); <br />
}else{<br />
Wire.beginTransmission(4);//connect to slave 4<br />
Wire.write(val-48);<br />
Wire.endTransmission(); <br />
Serial.print(val-48);<br />
Serial.println(" <-- Undefine command."); } <br />
}<br />
}<br />
<br />
<br />
從機程式 (Slave)<br />
<br />
#include <Wire.h><br />
int pinLed = 13;<br />
void setup(){<br />
Wire.begin(4);<br />
Wire.onReceive(rxEvent);<br />
pinMode(pinLed,OUTPUT);<br />
}<br />
void loop(){<br />
delay(100);<br />
}<br />
void rxEvent(int count){<br />
int c = Wire.read();<br />
if(c==1){<br />
digitalWrite(pinLed,HIGH);<br />
}else if(c==0){<br />
digitalWrite(pinLed,LOW);<br />
}else{<br />
for(int i=0;i<c;i++){<br />
digitalWrite(pinLed,HIGH);delay(300);<br />
digitalWrite(pinLed,LOW);delay(300);<br />
}<br />
} <br />
}<br />
<br />
連線後,從主機打開串口視窗,從這發出命令,<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig70r4NoC32w2CitITwAc4epDhh6q5YwB0dw6jxH8FXBdPCL_XDGaRBziyII5gksq3cqSoaSz7cHzwxknd_xch52ZGpJcNiq8nWzXMrkIkYigikM68sL2MjKVklkyUOWhTqR07cQx25G_V/s1600/serialWin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig70r4NoC32w2CitITwAc4epDhh6q5YwB0dw6jxH8FXBdPCL_XDGaRBziyII5gksq3cqSoaSz7cHzwxknd_xch52ZGpJcNiq8nWzXMrkIkYigikM68sL2MjKVklkyUOWhTqR07cQx25G_V/s1600/serialWin.png" height="325" width="400" /></a></div>
<br />
輸入1,從機 LED 點亮<br />
輸入2,從機 LED 熄滅<br />
輸入其他,就一直走迴圈,亮到該鍵的數值走完為止。<br />
<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-87566948584288228292014-03-14T03:29:00.002+08:002014-03-14T03:29:56.989+08:00大家應該來反民進黨只要國民黨有什麼政策,那些民進黨的就哇哇叫,真是台灣的亂源,阻礙進步的黨,一堆政客利用善良百姓來取得政治資源的組合體,大家應該唾棄民進黨。<br />
<br />說什麼反服貿,甚麼黑箱作業,說白了就是要面子嘛,真搞不清楚現在是哪個黨在執政,有什麼政策難道民進黨說了算?真是笑話,等拿到執政權再來搞抗爭杯葛阿。<br />
<br />
服貿是什麼?只會一昧的反,現在全世界都想跟中國做生意,而大陸釋出善意,讓利台灣,再不簽,機會就被韓國搶去了,一群白癡,等到沒生意做再來叫罵馬英九無能是吧!<br />
真是一群奸詐狡猾之徒,只會騙選票,騙鄉下老農。<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-56700939125854782292014-02-26T10:13:00.000+08:002014-03-07T11:08:23.804+08:00想戒菸嗎?只要你想,我提供方法。想戒菸嗎?只要你想,我提供方法。<br />
<br />
以下是本人經驗,我是20多年的老菸槍,從國中開始抽到結婚後,大概每天1-2包長壽菸,我用的方法很簡單,而且一次就戒掉,沒再抽了,到現在已經快10年了。<br />
<br />
不多說,開始介紹這方法,這方法是很有效的。<br />
簡單的說,戒菸很難,難在於把你心愛的東西拿走,捨不得,放不下, 這是一定戒不掉的。<br />
<br />
那該怎麼戒呢?<br />
那就不要戒阿~<br />
<br />
難戒就不要戒,這就是我的方法。<br />
<br />
<span style="color: red;"><b>每當我想要抽的時候,我就想 " <i>等一下再抽</i> ",然後等一下再等一下,一等就幾十年了。。。</b></span><br />
<br />
很簡單吧,細細想來,這跟心理學是有關的,要搶走你心愛的玩具,一定很不捨,既然不捨,那就不要捨,就等一下再玩,這樣就沒有失落感了。<br />
<br />
這是後話了,沒抽菸之後,身體就開始自然排毒,身上臉上就會長一些像青春痘,一擠就都是菸油,都是尼古丁的味道,大概持續半年左右,身上就不會一身臭菸味了,如果再配合不吃肉,那排毒效果更明顯。<br />
<br />
因為現在的肉都不能吃阿,你想,養一隻雞要半年,如果把它縮短到一個月,那節省下來的飼料錢多少?還沒賣出就先賺了飼料錢,還有人事管理費。於是就開始用生長激素賀爾蒙來縮短生長期,雞隻會生病,增加損耗率,就用抗生素來餵食,這就是大家在夜市吃的鹽水雞,滷味,Mxx,肯xx炸G等等,這些就是造成小學生1-2年級,月經就來的主要因素,1-2年級來月經會怎樣?就成熟了阿,就不會再長高了,矮冬瓜的,您不會希望自己的女兒是這樣子吧。<br />
<br />
換說牛肉,台灣牛肉主要是來自美國,大家都知道,要賣相好一點,就是肥少瘦多,這就是瘦肉精添加的問題,瘦肉精對人體會怎樣,我不知道。不過我想,大家永遠都不會知道,就算有研究報告出來也會很快不見,因為這是美國的利益,我只知道,上禮拜新聞,有位20幾歲女子,每天吃一碗牛肉麵,竟然罹癌,大家可以去看看新聞,不是我亂說。<br />
<br />
那豬肉呢?總該沒事吧!豬肉來源主要都是本地養的,我高中時候聽養豬的同學說,他告誡我別吃香腸,肉乾,肉鬆之類東西,他說他們死掉的豬,都有專門的人在收,那是好朋友才說的。。。<br />
那活著的豬呢?該有的藥一樣不少,抗生素,生長激素,瘦肉精之類,因為本地產的不像檢疫那麼嚴格,瘦肉精都被驗出毒性最強,最高級的那種,只能在宰殺前一周停藥,有的甚至3天,因為停太早豬隻會生病會掛,這道理大家該懂的。<br />
<br />
那剩下蔬菜類了,這人類生存的最後一道防線,這總能吃了吧~~~<br />
沒錯,這是能吃,沒放藥的蔬菜一定有蟲咬,葉子 一定很醜,坑坑洞洞的,請問你買的菜是這樣的嗎?嗯,不用回答我,我不想知道,因為我也不會買那種菜啦~<br />
接著是重點,任何農藥都有藥效殘留問題,譬如1周的話,那採收前一周停藥,那賣到市場上藥量殘留是可被接受的,回家用水浸泡後沖洗,再切,這樣OK的。<br />
問題是農民似乎沒在管這個,或者不知道,他們對農藥的知識是很抱歉的,都是農藥店說:這支牌子好,哪步行再加另一支,比例2000,農民回家後就想,我ㄟ田蟲卡賊,某用1000對好。。。<br />
就是這樣子 啦~<br />
<br />
本世紀上演的就是,能源,食物之戰。<br />
<br />
我好像扯遠了,見人就是矯情! <div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-83843472534333247312014-01-27T03:50:00.001+08:002014-01-27T03:53:34.568+08:00STC-ISP v4.80-繁體免安裝版 終於找到繁體版,做做小東西很方便,存檔備用。<br />
<br />
簡介 <br />
STC-ISP 是一款單片機下載編程燒錄軟件,是針對STC系列單片機而設計的,可下載STC89系列、12C2052 系列和12C5410等系列的STC單片機,使用簡便,現已被廣泛使用。<br />
<br />
<a href="http://baike.baidu.com/link?url=IcVy9Nxd21ZtlcTiT2c6XIyTWOSpX3xlncKXYY_I-k-1ny4IToKY4CGL7ioC8xuhR5aTVojT3aHtynZxwG_sW_">http://baike.baidu.com/link?url=IcVy9Nxd21ZtlcTiT2c6XIyTWOSpX3xlncKXYY_I-k-1ny4IToKY4CGL7ioC8xuhR5aTVojT3aHtynZxwG_sW_</a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vHvjnP4LgyFHQxBVgMHmRROdCTSur4mdC8AIxdySOLq66SGEaOItveEjsgM_lY6wP5aGvATF4hZLfd1s90YWdZiuoikfcfOseEc6rnMk7P98kxXWJ3Z2LU1XBAlUds4h6E_HIfeEzdY9/s1600/stc-isp-v4.80-%E7%B9%81%E9%AB%94%E5%85%8D%E5%AE%89%E8%A3%9D.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vHvjnP4LgyFHQxBVgMHmRROdCTSur4mdC8AIxdySOLq66SGEaOItveEjsgM_lY6wP5aGvATF4hZLfd1s90YWdZiuoikfcfOseEc6rnMk7P98kxXWJ3Z2LU1XBAlUds4h6E_HIfeEzdY9/s1600/stc-isp-v4.80-%E7%B9%81%E9%AB%94%E5%85%8D%E5%AE%89%E8%A3%9D.png" height="300" width="400" /></a></div>
<br />
繁體下載<br />
<a href="https://www.dropbox.com/s/eqwimg1x3pufkgx/stc-isp-v4.80-%E7%B9%81%E9%AB%94%E5%85%8D%E5%AE%89%E8%A3%9D.rar/">stc-isp-v4.80-繁體免安裝.rar</a><br />
<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com4tag:blogger.com,1999:blog-190010956579731433.post-28235866266155044642013-12-30T04:30:00.000+08:002014-01-04T20:15:28.225+08:00UFO 原理被發現了?這是一篇我也不確定的文章,我無法確定 Keshe 所言的真實性,我選擇"寧可信其有",以免錯失了這偉大的發現,以下影片要各位自己去判斷了。<br />
<br />
先來看段影片,如果真的發現飛碟原理,那真讓我太驚訝了。<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/C5GC7DpNNs4?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/czdV9yjYXQY?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
以下是原理教學,說真的,我看不懂他在說什麼,我物理只有高中程度而已,希望有高手能證明他所言。<br />
<br />
<a href="http://www.youtube.com/watch?v=LALuIwrUZ24">Keshe教學( 1 ):介紹和重力</a><br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ZSyJs81q16o?feature=player_embedded' frameborder='0'></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<a href="http://www.youtube.com/watch?v=kk_6rNkM0Lg">Keshe教學 ( 2 ):中子的事項 </a><br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/pb0gXtOIYqs?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<a href="http://www.youtube.com/watch?v=wo6_aZwxKGk">Keshe教學( 3 ):核衰變和運動 </a><br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/BAUFqec9hVU?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<a href="http://www.youtube.com/watch?v=oWPUpRIPT30">Keshe教學 ( 4 ):融合 </a><br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://img.youtube.com/vi/Y2lxBNsA_CY/0.jpg" height="266" width="320"><param name="movie" value="http://youtube.googleapis.com/v/Y2lxBNsA_CY&source=uds" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="http://youtube.googleapis.com/v/Y2lxBNsA_CY&source=uds" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
<br />
<br />
<a href="http://www.youtube.com/watch?v=DxcMu4ad2QE">Keshe教學( 5 ):光的飛行和製作</a><br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://img.youtube.com/vi/0_2H-yUohUo/0.jpg" height="266" width="320"><param name="movie" value="http://youtube.googleapis.com/v/0_2H-yUohUo&source=uds" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="http://youtube.googleapis.com/v/0_2H-yUohUo&source=uds" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<a href="http://www.youtube.com/watch?v=JkienipGc-U"><br /></a>
<a href="http://www.youtube.com/watch?v=JkienipGc-U">Keshe等離子體發生器- 自由能源 </a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/JkienipGc-U?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<a href="http://www.youtube.com/watch?v=9oILm_IxmOQ">keshe可樂瓶複製(中國)</a><br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://img.youtube.com/vi/9oILm_IxmOQ/0.jpg" height="266" width="320"><param name="movie" value="http://youtube.googleapis.com/v/9oILm_IxmOQ&source=uds" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="http://youtube.googleapis.com/v/9oILm_IxmOQ&source=uds" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
如果看完了上述影片後,還有興趣於 Keshe ,那可以繼續看下面這段訪談。<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/rubv4kRuwgU?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
更多資料,請搜尋 "Keshe 基金會",如果是真的,我們很快就有飛碟可以坐了。。。<br />
<br />
-------------------------------<br />
2014-01-04<br />
<br />
這幾天逛了相關網站,看了一堆留言,傾向他是一場騙局,同時,我也沒看到 Keshe 有提出什麼較具說服力的實驗或是成品等, 倒是不斷的賣書,以及一堆人在實驗。<br />
<br />
再觀察幾天看看,如果沒發現新的說服力證據,將移除本篇文章。<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-6881223816802822322013-10-25T00:53:00.001+08:002014-04-21T04:34:14.021+08:00如何在 Win7 下安裝 AutoCAD 2012今天被它折騰了幾個小時,故來 PO 文,讓以後的人省點時間。<br />
<br />
如果你有看到副檔名是 dxf 的檔,那就是 AutoCAD 的檔,就來看看這篇,可以省下您的時間。先來下載 AutoCAD,我找到了種子,可以用網路快車或是迅雷都很好下載。<br />
<br />
<a href="http://www.4shared.com/rar/Q1KX15nR/Autodesk_AutoCAD_2012_TW_Win_6.htm">Autodesk_AutoCAD_2012_TW_Win_64bit_32bit.iso</a><br />
<br />
它是個光碟映像檔,可能要燒錄成光碟後再安裝。或者裝個虛擬光碟軟體,就不用燒錄,直接模擬DVD來安裝。<br />
<br />
<a href="http://down.51cto.com/data/297830" target="_blank">虛擬光碟軟體 DTLite4402-0131</a><br />
<br />
進到光碟中,找到 setup.exe 執行安裝<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZD0nxaXDUKaaqk0kwbnBddQ-MNbmtvrwz-Xx_sOSYm6uSrZP2FxLFvXZ4qRILVSbk2rOXPRbuhT6oT2tmYLXFGJEnzOqDtj7f3qM2IARDN9vhhNrsy7UQmkDSclg4o7TlSay9OUlqX-Vu/s1600/inst01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZD0nxaXDUKaaqk0kwbnBddQ-MNbmtvrwz-Xx_sOSYm6uSrZP2FxLFvXZ4qRILVSbk2rOXPRbuhT6oT2tmYLXFGJEnzOqDtj7f3qM2IARDN9vhhNrsy7UQmkDSclg4o7TlSay9OUlqX-Vu/s400/inst01.png" height="310" width="400" /></a></div>
<br />
然後就會看到錯誤跑出來了<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4F_WNMzg19x97f86QCXAJ5O7ye8gV5pg7sWcIxDM2p1Vd6_iSadxO0ROwk7INC_0ytkcoDXMyEVR9n-Xgm1F9sorQ-CkHegymHrnpH-JKk6V31Cxs7BJaCmOq6GXKWzBqEa-UJTL8D3QD/s1600/inst05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4F_WNMzg19x97f86QCXAJ5O7ye8gV5pg7sWcIxDM2p1Vd6_iSadxO0ROwk7INC_0ytkcoDXMyEVR9n-Xgm1F9sorQ-CkHegymHrnpH-JKk6V31Cxs7BJaCmOq6GXKWzBqEa-UJTL8D3QD/s400/inst05.png" height="310" width="400" /></a></div>
<br />
點安裝記錄檔看看,會看到這樣<br />
<br />
.... Install .NET Framework Runtime 4.0 Language Pack Failed <br />
<br />
顯然是微軟的錯!去抓 .NET Framework 一個回來安裝。<br />
<br />
<a href="http://www.microsoft.com/zh-tw/download/details.aspx?id=17718">http://www.microsoft.com/zh-tw/download/details.aspx?id=17718</a><br />
<br />
Microsoft .NET Framework 4 (獨立安裝程式)<br />
<br />
<a href="http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe">http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe</a><br />
<br />
執行 dotNetFx40_Full_x86_x64.exe<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQyxM3SS2IVxBSWxp_DzVqaXmyk0K9pF_w8wpjV8jiHfwYgM68r25SoLsilsk-MVXhvMQECJT-uosJMw8aybluQt7o3TO5odJ2AbIpbQxML1s94r_gjkpfHYZGWFb3p7U0GA7Gb_iIkyn0/s1600/inst08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQyxM3SS2IVxBSWxp_DzVqaXmyk0K9pF_w8wpjV8jiHfwYgM68r25SoLsilsk-MVXhvMQECJT-uosJMw8aybluQt7o3TO5odJ2AbIpbQxML1s94r_gjkpfHYZGWFb3p7U0GA7Gb_iIkyn0/s320/inst08.png" height="280" width="320" /></a></div>
<br />
裝好後再次執行 setup.exe 安裝,我是選試用,這樣就不會叫你輸入一些有的沒的...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxZmKqJoppjByiHu0kF1vlWbCkiK3srEaeGH_9VQ7mmtLOogYASv5KXPDnoVAITG6vLFlrz7GIpZAd8xCpFDD96H7FnlKWKwcwRKDRgewG-NkukEMDqf_fJMxt9enikfTJn9kxTp_rFzqn/s1600/inst03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxZmKqJoppjByiHu0kF1vlWbCkiK3srEaeGH_9VQ7mmtLOogYASv5KXPDnoVAITG6vLFlrz7GIpZAd8xCpFDD96H7FnlKWKwcwRKDRgewG-NkukEMDqf_fJMxt9enikfTJn9kxTp_rFzqn/s400/inst03.png" height="310" width="400" /></a></div>
<br />
放到 D: 這樣等下好移除<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFf1DqWJ001e-H-KUXnyV6FASGzEvxew_ASXfy_ueAUBGqv6vphmzTOZG0hZpxDwwrbnnwLq8vWlhly7b-jUvbRBNBilM3tvchSRx5x3141zALL6E39u_nYf37NX8wzrMzYf7HZzYtl7m/s1600/inst04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnFf1DqWJ001e-H-KUXnyV6FASGzEvxew_ASXfy_ueAUBGqv6vphmzTOZG0hZpxDwwrbnnwLq8vWlhly7b-jUvbRBNBilM3tvchSRx5x3141zALL6E39u_nYf37NX8wzrMzYf7HZzYtl7m/s400/inst04.png" height="310" width="400" /></a></div>
<br />
一直下一步,就會完成了。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoRJp91fNwk82fYVF78qkyEShctD_1JZLS_Sj4KblZAytArB0r3U729tl_qK79JDmPCJLsMMG3sHVl75Yh-kOxEHFBau_-S9lZQCXHEoOCewiMIKt5ANOGJO-e3iJ2bzflWcO1UCxF47M2/s1600/inst10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoRJp91fNwk82fYVF78qkyEShctD_1JZLS_Sj4KblZAytArB0r3U729tl_qK79JDmPCJLsMMG3sHVl75Yh-kOxEHFBau_-S9lZQCXHEoOCewiMIKt5ANOGJO-e3iJ2bzflWcO1UCxF47M2/s400/inst10.png" height="310" width="400" /></a></div>
<br />
重開 AutoCAD 看看,除了這個畫面外,並不會一直騷擾你... <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEietsq_14wMkv-nznHGGSbUDfPj3hs_CqA0yZNoLFZPosjaZV6jJzlvLE2g-IApMeUhxscpp0zrYgLMsn01XelrF4wgYjQyOL4mF7PmldgjPYtBRYmtBLadH3IySH3xJtQxrHJiydCcVcuM/s1600/inst12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEietsq_14wMkv-nznHGGSbUDfPj3hs_CqA0yZNoLFZPosjaZV6jJzlvLE2g-IApMeUhxscpp0zrYgLMsn01XelrF4wgYjQyOL4mF7PmldgjPYtBRYmtBLadH3IySH3xJtQxrHJiydCcVcuM/s400/inst12.png" height="361" width="400" /></a></div>
<br />
隨便開一張圖看看,可以正常,正上方會有一行字 "未註冊版" ,但不會影響使用。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNHjE2O1q0RfVPnTbOjLH-Kux5zYyExUIWW1ylQ3BWwshLp_V9IpAUZD-rt8gnxHVZ1VFvqlP-glys-I2Xem_Av9y-ylUKudcVfzqGNB7aSF2EouLBvonX5LMcW72ovJ270F0PRk6fxbg2/s1600/inst13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNHjE2O1q0RfVPnTbOjLH-Kux5zYyExUIWW1ylQ3BWwshLp_V9IpAUZD-rt8gnxHVZ1VFvqlP-glys-I2Xem_Av9y-ylUKudcVfzqGNB7aSF2EouLBvonX5LMcW72ovJ270F0PRk6fxbg2/s400/inst13.png" height="240" width="400" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
最後,各位可能要失望了,這裡沒有教大家如何 crack,因為我也不會 XD</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
也許 DVD 裡頭有也說不定,但我不會用就是了。 </div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com3tag:blogger.com,1999:blog-190010956579731433.post-86980876597262124002013-08-31T04:40:00.000+08:002013-08-31T04:44:49.507+08:00Android root 的原理又是月底,發一篇文章,這個月都沒發... <br />
<br />
Android 手機 root 的原理,就是使用 linux 中的 su 指令來提權,<br />
這在 android 系統中 通常是被封掉的功能,<br />
通常是透過一些方法把 su 指令"放進" android 系統中,<br />
通常是放在 system/bin<br />
然後再把 su 的權限打開,<br />
成功的話,任意 user 都可以執行 su 來提權,<br />
就是俗稱的已 root 手機。<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com1tag:blogger.com,1999:blog-190010956579731433.post-14590232932560607642013-07-23T09:00:00.001+08:002013-07-23T09:07:13.112+08:00經濟的千鈞一髮-匯率大家都知道,匯率除了是貨幣互換計價基礎外,還有一個重要的功能,就是國力的展現,對等的名詞就是"強勢貨幣",這也是世界各國對你的貨幣評價。<br />
<br />
光速崩潰<br />
<br />
當國力強盛,世界各國會樂於持有你的貨幣,不會擔心有朝一日變成壁紙,當一個國家陷於戰爭,天災,或其他因素重創該國,則其幣值迅速下墬,速度之快,超乎你想像,買股票還要經過交割,而匯率的標的物就是"錢",它更可能以超過股市崩盤的速度下跌,加上科技發達,電腦交易是立即的,崩潰的速度更是接近電子的速度,光速崩潰,這也許是美國不敢再玩下去"QE政策"的原因吧,近來美元有貶值的趨勢,它就趕緊踩煞車,因為越來越多國家相信,這印鈔票贖回公債,是不勞而獲,而不願幫他買單了。<br />
<br />
升值不是能控制的<br />
<br />
要想升值還不能,但貶值卻是立即的,為什麼呢?升值不是央行能控制的,而是世界各國對該國幣值的評價,你央行能抵得過萬萬千千的索羅斯嗎?那些國際套利者,只要匯率差大過手續費,程式下單就立刻湧入,當年東南亞金融風暴就是如此,台灣不是金融很健康而躲過一劫,更不是政府所言的強勢貨幣,而主要原因恰恰相反,就是當時金融是很封閉的,沒有工具可供其套利,所以安然度過一劫,但現在不同,各式期貨充斥,期指,新台幣交換,流動性大增,進出容易,風險降低,國際套利者能操作的工具很多,如果再一次,必被打趴在地啦。<br />
<br />
幹麻要貶<br />
<br />
匯率貶值一半,外匯存底立刻腰斬,國人多年努力就憑空消失,災害不只如此,你向外國購入的原物料全部貴一倍,你賣出的東西也賤了,當然,賤價自然有吸引力,會吸引他國購買,但是要算一下總體國家是入超多還是出超多,以及加上外匯存底立即抵銷的效果,這樣才客觀。<br />
才不會像國內某些做半導體的人,張*謀等人所言,危言央行要貶值,結果欲自己得利,全民要負擔進口成本增加的苦果,加上外匯抵銷苦果,它自己的原料也是要進口,抵銷後也未必賺很多,卻賠上全國,這是損人小利己,央行要三思阿,也不要再為美元買單了阿。。。<br />
<br />
那就交由市場決定吧<br />
<br />
沒錯,這真是好主意,要控制匯率,無異就是與全世界的索羅斯對做,做得越兇,越是吸引那些量子基金投入,築的越高,吸引的就不只是量子了,恐怕由量子變原子,由原子變石頭,最後狠狠砸向央行總裁,做出錯誤的決策,浪費銀彈,整垮國家。<br />
<br />
那要央行做什<br />
<br />
央行可以喝喝咖啡,看看盤,看哪些投機份子炒太兇,就小干預一下,小可以,大可不行,剛說過,不能築太高,沒有一個國家能抵抗全世界的。然後好整以暇,擇個黃道吉日再脫手就好了,這樣就堪稱"逍遙",千萬別跟自己過不去,不做為才是大有為。<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-64778768199327921782013-06-17T19:23:00.002+08:002013-06-22T23:42:20.404+08:00Android 檔案權限有時,我們想要修改手機的開機畫面,開機音樂,或是字型,都需要用到檔案,這時就有必要去了解一下它的結構了。本文就是間單的來說明一下 Android 檔案權限。<br />
<br />
Android 是架構在 Linux 之上,使用 java 去實作的系統,所以它的檔案系統就是 linux 的檔案系統,要更動就必須要有最高權限 root,所以彷間才會有很多破解 root 的手機,這些原因都是根源於此,如果我們想要修改我們的手機,把廠商植入的一些莫明其妙的服務拿掉,就需要來了解一下 Android 的檔案權限。<br />
<br />
先來看看系統 apk 都在哪<br />
<br />
# cd system/app<br />
cd system/app<br />
# ls -l<br />
ls -l<br />
-rw-r--r-- root root 120554 2012-12-20 10:28 CalendarProvider.apk<br />
-rw-r--r-- root root 761891 2012-12-20 10:24 Email.apk<br />
-rw-r--r-- root root 52291 2012-12-20 10:24 MediaProvider.apk<br />
-rw-r--r-- root root 20544 2012-12-20 10:28 StorageMgr.apk<br />
-rw-r--r-- root root 70488 2012-12-20 10:25 Calculator.apk<br />
-rw-r--r-- root root 5475 2012-12-20 10:24 ScrCapService.apk<br />
-rw-r--r-- root root 34586 2012-12-20 10:24 HomeLocation.apk<br />
-rw-r--r-- root root 115089 2012-12-20 10:29 SystemUpdate.apk<br />
...<br />
<br />
就放在 /system/app 之中,各位可以看到,擁有者是 root,如果您想刪掉某個廠商植入的東東,那就進到這裡後,下個移除指令即可。<br />
<br />
# rm DeviceRegister.apk<br />
rm DeviceRegister.apk<br />
<br />
當然,您必須先取得 root 權限。<br />
<br />
開始我們的主題,檔案權限<br />
<br />
我們可以看到,每個檔案前面都有 -rw-r--r-- root root ....<br />
-rw-r--r-- 是檔案型態(File Type)+3組權限(rwx)組合,擁有人、群組、其他<br />
第一個位元是 File Type,- 代表是檔案<br />
d 是目錄;<br />
- 是檔案;<br />
l 為連結檔 (link file);<br />
b 表示為裝置檔裡面的可供儲存的周邊設備,例如硬碟;<br />
c 表示為裝置檔裡面的序列埠設備,例如鍵盤、滑鼠。<br />
<br />
接著是3組權限(rwx)組合<br />
<br />
r 代表可讀<br />
w 代表可寫<br />
x 代表可執行<br />
- 代表無權限<br />
<br />
上例中<br />
第一組是 rw- ,代表擁有人權限是讀+寫+不可執行<br />
第二組是 r-- ,代表群組權限是讀+不可寫+不可執行<br />
第三組是 r-- ,代表其他權限是讀+不可寫+不可執行<br />
<br />
rw-r--r-- 對應數值為 644, 如下表所示<br />
r w x<br />
-----------<br />
0 0 0 = 0<br />
0 0 1 = 1<br />
0 1 0 = 2<br />
0 1 1 = 3<br />
1 0 0 = 4<br />
1 0 1 = 5<br />
1 1 0 = 6<br />
1 1 1 = 7<br />
<br />
由右向左,第一個x是2^0,第二個w是2^1,第三個r是2^2<br />
所以,對應值就是 r=4,w=2,x=1<br />
然後看有什麼權限,就把它加起來就是權限值了。<br />
<br />
如 755 = 111 101 101 = rwx r-x r-x <br />
<br />
同理 sdcard 的權限是 rwxrwxrwx = 111 111 111 = 777<br />
/system 的權限是 rwxr-xr-x = 111 101 101 = 755<br />
/system/media 的權限是 rwxr-xr-x = 111 101 101 = 755<br />
開機畫面 bootanimation.zip 的權限是 rw-r--r-- = 110 100 100 = 644<br />
<br />
# ls -l /system/media<br />
ls -l /system/media<br />
-rw-r--r-- root root 843308 2012-12-17 12:35 boot.wav < 開機音樂<br />
-rw-r--r-- root root 543788 2012-12-17 12:35 shutdown.wav < 關機音樂<br />
drwxr-xr-x root root 2013-06-16 21:06 audio<br />
-rw-r--r-- root root 415635 2012-12-17 12:35 shutdownanimation.zip < 關機動畫<br />
-rw-rw-rw- root root 4995540 2013-06-17 01:10 bootanimation.zip < 開機動畫<br />
<br />
bootanimation.zip 格式<br />
<br />
在裡頭有一個檔 desc.txt是用來設定撥放的一些參數<br />
以我的為例<br />
<br />
320 480 30<br />
p 1 0 part0<br />
p 0 0 part1 <br />
<br />
圖片是 320*480 每秒 30 幅<br />
第一回合 播放1次 間隔0幅 圖檔目錄part0<br />
第二回合 播放無限次 間隔0幅 圖檔目錄part1<br />
<br />
<div style="text-align: center;">
請注意:bootanimation.zip 千萬不要壓縮</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvipuFkY7CJzmexCXw-rBytolTO0zxCTapwBFDjQIsCK2oNCr4NdiDARJrDXG1AjjRu6XD1vRh2SEEkkRAeMVpOWxuWHS06fQrK-hAPwjjuk-t-_EZDBDFuzki5urmLAldjxhdIVbhZW-E/s1600/boot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvipuFkY7CJzmexCXw-rBytolTO0zxCTapwBFDjQIsCK2oNCr4NdiDARJrDXG1AjjRu6XD1vRh2SEEkkRAeMVpOWxuWHS06fQrK-hAPwjjuk-t-_EZDBDFuzki5urmLAldjxhdIVbhZW-E/s400/boot.png" width="400" /></a></div>
<br />
<br />
參考資料<br />
http://linux.vbird.org/linux_basic/0410accountmanager.php<br />
http://www.cyut.edu.tw/~dywang/linuxSystem/node26.html<br />
http://web.nchu.edu.tw/~jlu/cyut/android/animation.shtml <div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0tag:blogger.com,1999:blog-190010956579731433.post-57267967895600290322013-05-26T15:38:00.000+08:002013-05-27T02:05:37.879+08:00BCB6 字串處理BCB 本身提供一種字串形態 UnicodeString 很好用,也很容易轉型到其它型態,如 string, char... 等等,但本篇是要介紹古老的 std::string 用法,主要是用在函式間傳遞,理由是。。。我用習慣了 = =<br />
<br />
以下分為兩個部分,第一是如何把字串傳址進去函式,然後函式幫您處理好,也不用還您,您就可以直接使用。<br />
第二部分則是再進階,假如一個字串不夠用,那我就傳回一個字串陣列,這樣就夠酷吧,也許您可以再修改一下,就可以傳回自定義的結構資料。 <br />
<br />
先來看看結果,我只截取 API 上的 Memo 畫面,雖然有點醜,但不影響閱讀及程式的正確性。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI27I4-ZxKw1KITOUcXhQHQKvSOA7aLKDLXNLkzaKbAIw5qm9kA7Omj-oLYuO_byNFLgdJv1y_2c2KswbnftfV-PfQc-q7rJ-ZSHnI-3QoDYWHRn-4rLKCsAMckDmqEiZq31A3cCe404_q/s1600/strTest03.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI27I4-ZxKw1KITOUcXhQHQKvSOA7aLKDLXNLkzaKbAIw5qm9kA7Omj-oLYuO_byNFLgdJv1y_2c2KswbnftfV-PfQc-q7rJ-ZSHnI-3QoDYWHRn-4rLKCsAMckDmqEiZq31A3cCe404_q/s400/strTest03.PNG" width="400" /></a></div>
<br />
第一部分、如何把字串傳址進去函式<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLu1erV458ohyphenhyphenQqTUsBsKXJRiZ5vv4D7zOyr-XhITKKBAFNmgFhk6bAh8mSEVHJxTWOyn6YcFD5CQQoOi_mfKUqLQt0HUpe-y85H9Iw183XEOrLfouA4msNuqTIC77DQX5-oFHGKl3jxEI/s1600/strTest01.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLu1erV458ohyphenhyphenQqTUsBsKXJRiZ5vv4D7zOyr-XhITKKBAFNmgFhk6bAh8mSEVHJxTWOyn6YcFD5CQQoOi_mfKUqLQt0HUpe-y85H9Iw183XEOrLfouA4msNuqTIC77DQX5-oFHGKl3jxEI/s400/strTest01.PNG" width="400" /></a></div>
<br />
第二部分、傳回一個字串陣列<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEttD5p3znkSGT5hqd_ykO12RtIKJW8f-7NtnMtfNOAhvHcl4X3NRfz8pzF5QgPJLwqkt78-3lwI_5f6r0rcj04SY35dw5VsaOWlNY7cwlPzi1vvdrunKXwB7aTE0bSyPxkxkw8w82V-lQ/s1600/strTest02.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEttD5p3znkSGT5hqd_ykO12RtIKJW8f-7NtnMtfNOAhvHcl4X3NRfz8pzF5QgPJLwqkt78-3lwI_5f6r0rcj04SY35dw5VsaOWlNY7cwlPzi1vvdrunKXwB7aTE0bSyPxkxkw8w82V-lQ/s400/strTest02.PNG" width="400" /></a></div>
<br />
最後,我還是把程式碼放在下面,方便複製使用。當然,Memo1 就是 BCB6 提供的文字集物件,這我就不說明了。<br />
<br />
呼叫部分 <br />
//------------------------------------<br />
//測試字串傳址<br />
string str1;<br />
strTest1(str1);//傳址<br />
Memo1->Lines->Add(str1.c_str());<br />
<br />
//測試傳回字串陣列<br />
string *str2;//字串陣列<br />
str2=strTest2();//測試傳回字串陣列<br />
Memo1->Lines->Add(str2[0].c_str());<br />
Memo1->Lines->Add(str2[1].c_str());<br />
Memo1->Lines->Add(str2[2].c_str());<br />
//-------------------------------------<br />
<br />
函式部分<br />
//--------------------------------------------------------------------<br />
//測試字串傳址<br />
void strTest1(string &str){<br />
str="測試字串傳址...";<br />
}<br />
//測試傳回字串陣列<br />
typedef string * strArr;//給陣列傳回用,直接宣告編譯不會過<br />
strArr strTest2(){<br />
string ss="測試傳回字串陣列...";<br />
string *str = new string[3];<br />
str[0]= "0:" ; str[0]+= ss;<br />
str[1]= "1:" ; str[1]+= "typedef string * strArr;";<br />
str[2]= "2:" ; str[2]+= "給陣列傳回用,直接宣告編譯不會過.";<br />
return str;<br />
}<br />
//-------------------------------------------------------------------- <br />
<br />
結果當然是秀出下面這樣<br />
<br />
測試字串傳址...<br />
0:測試傳回字串陣列...<br />
1:typedef string * strArr;<br />
2:給陣列傳回用,直接宣告編譯不會過.<div class="blogger-post-footer"><script type="text/javascript"><!--
google_ad_client = "ca-pub-9766593288836205";
/* 首頁廣告看板 */
google_ad_slot = "0654144008";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>kowalahttp://www.blogger.com/profile/00123584854515069336noreply@blogger.com0