發表文章

目前顯示的是 十二月, 2016的文章

[單晶片] - Keil C使用PCA 功能介紹 + Capture HC-SR04感測資料

此晶片使用MPC82G516

這裡介紹PCA的使用方法

PCA 主要有四種不同的應用方法

16-bit Software Timer Mode                                         Capture Mode High Speed Output ModePWM Mode 有以上四種不同的模式。


第一種模式 16-bit Software Timer Mode

可以將此當成額外的計數器,並且擁有16bit的大小
觸發中斷方式為,內部計數器CH CL 和設定值 CCAPnH CCAPnL 相同時 特別之處是本身計數器會不停往上數 因此目標的值也需要不停增加 以下為範例 製造P10腳位輸出周期2ms 方波
long PCA0T = 1843; //PCA0 目標值 //設定 因石英震盪體為22.1184 /12 = 1843200 /s 1843約=1ms int PAC0Internal =1843;//設定每一次間隔的大小 1843=1ms CCAP0L=0xff&(PCA0T); //設定首次要追的目標,將值丟入暫存 CCAP0H=0xff&(PCA0T>>8); CCAPM0=0x49; //開啟Comparator 和 中斷 和 MATn CL=0x00; //歸零 CH=0x00; AUXIE = 0x04; //PCA interrupt CCON=0x40; //開啟PCA計數 void PCATimer(void) interrupt 10 { if(CCF0) { PCA0T =PCA0T+PAC0Internal ; if(PCA0T>65536) PCA0T-=65536; //數字超過就減去65536 = 16bit CCAP0L=0xff&(PCA0T); CCAP0H=0xff&(PCA0T>>8); P10=~P10; // 製造一個方波周期為2ms,因為每個ms改變一次 CCF0=0; …

[單晶片]-使用keil c 變數的範圍和可能產生錯誤

以下紀錄來提醒自己:

在Keil C的開發中,使用變數需要特別小心。

如果遇到數值狀態產生怪異變化,或是利用UART傳值發現數值為-1。

有可能是變數的範圍產生OVERFLOW。



變數 範圍 char -128~ 127 unsigned char 0 ~ 255 int -32768 ~ 32767 unsigned int 是 0 ~ 65536 long , float , double 範圍都很大 理論上是夠用,但較占空間
使用不同的數值的時候,做數值的位移 >>  ,  <<  會導致數值有不同變化。

ex: 用 unsigned char位移後  如果位移後的值非unsigned 就會造成數值錯誤。

原因: 二進位的負數表示法,會把第一個當作成1,然後使用補數。

詳細可參考二進位的補數,維基百科

範例  
變數 範圍 long value = 0; unsigned char shiftvalue = 0xff; value = shiftvalue<<8 ----=""> 應該變為 0xff00 數值轉換為 65280 輸出value 卻等於 -256 原因就是long 非 unsigned 會透過第一個位元去判斷是否1為正負號 因此數值會大大不同 在撰寫的時候應特別注意,不像高階語言那麼聰明可以直接轉換 基本上還是利用二進制判斷
以上為自己撰寫時常碰到的錯誤。
卻常常花許多時間在找問題。

結果只是變數型態最根本的問題。
如果有錯歡迎建議,也在此作紀錄以防日後遇到。

[研發替代役]-明緯面試

面試內容主要是韌體工程師,而這一家主要是製作電源供應器 地點在五股,距離家裡較近
一開始進去後便開始筆試部分
筆試主要是使用電腦 考邏輯和英文的時候是利用網頁作答,需要計時 另外還需要填上性格測驗 專業測驗則是紙筆測驗,需要考韌體部分和硬體部分
之後第一個面試主管進來 面試氣氛很不錯,因為主管一進來就說不要太緊張,大家聊聊天 自我介紹完後,介紹到專題的專業部分 主管就請韌體的主管來
韌體的主管來,就重複介紹一次專題的部分 但是我覺得我第二次沒有講好,不過主管就提出許多問題 慶幸當時軟體的確都自己負責 幾乎在通訊上和設定上等問題都能回答出來
韌體的主管人很好,講話也讓人感覺很能夠親近 因此我就大膽的請問剛剛韌體考題上不會的問題 主管說了一句話我覺得很好,只要能解決問題的方法就是好方法 的確一個問題常常都有許多辦法,先求有再求好 在做研究的過程中更是明顯
感覺面試在專業上佔有很大的部分 因為韌體主管針對我專題和所做的應用都提出許多問題 之後主管說要帶我去看工作環境
一進去工作環境,還算是寬敞並且舒適 主管帶我去看電源供應器測試的一些設備等等 以及辦公的環境還有會使用到的東西
因為做韌體部分,還是會有硬體的問題 當時主管就有談到,對於電子學電路學電磁學等等都會有一定知識的要求 所以辦公環境也會看到電源供應器,示波器等等,也和我提到要焊接 雖然這些就是我大學所學,以及研究所研究 但是本身興趣還是偏向純軟體,不過主管和環境等等都給人很好的感覺

最後參觀完辦公室,就是跟人資談 除了一些基本的問題以外,就是特別介紹了研替的制度 以及問問人資自己面試如何 得到人資的肯定感覺很好 人資問有面試過哪些的公司,提出好幾個結果我都沒去 因為主要都是硬體廠的樣子
最後這一間有得到offer,可惜礙於興趣因此還是沒有選擇 實在非常喜歡主管給人的感覺 已經主管的賞識和對人的態度 薪水也很不錯,福利等等也是,不過畢竟研替三年 還是要以興趣為主,很可惜沒有主管名片 不然就能寫信過去向他好好道謝一番


Sublime 3安裝git 並且連接遠端git

圖片
簡易Sublime3 Text 安裝git的流程
需要以下軟體

1.Sublime text 3
2.Sublime git


1. 編輯軟體,主要是編寫程式語言使用,並配合相關pluging使用
可於 官網下載

2.Sublime git ,創立本地github並且透過指令同步於網路github上
官網下載

git使用時,如下圖顯示,需要創立本地git repository,因此使用sublime git
Git使用概念可參照 此網頁


sublime git 安裝流程,只要選擇好安裝資料夾後,無特殊需求直接next到底

(1) Sublime 重要套件 Package Control 安裝

進入Sublime後,按下crtl+` 會出現命令欄
複製以下網址內的代碼貼上後按下enter執行
安裝完後可以看到Preferences 裡面出現Package Control 


按下後會出現一個視窗,這時候點選Install Package 。
會出現如下圖顯示,可以在此欄位上收尋你想安裝的plugin,Sublime3推薦軟體 可參考 此網頁


接下來要安裝git的plugin,收尋GIT,並且下載。

安裝成功後,創建一個要做為Github本地的資料夾,並用new folder開啟,利用ctrl+shift+p 打入指令git init,並確認資料夾是否正確,如果無法建立可重啟sublime再次嘗試。

成功後,建立一個檔案README.md 並打上測試內容。


再輸入指令 Git  add all 

輸入指令Git Commit ,在上方隨意輸入Commit 之後按下ctrl+w 或是關閉檔案,成功會顯示如下,已成功上傳至本地hub。
輸入指令Git Gui,開啟Git bash ,並且注意目錄是否正確
輸入如下指令 git config --global user.name "yourUsername"