QG暑期訓練:第三周周二兩日結

QG暑期訓練:第三周周二兩日結

來自專欄 QG里的點點滴滴

這是訓練營第五篇日記,日期:2016年7月26日

--------------------------------生活小記--------------------------------

今天看到一句話,有些人總在深夜燃燒大腦,有些人在黎明之時發現世界卻別改變了。我也希望自己可以這樣,夢想還是要有的萬一實現了呢。做一件事情不難,難的是懷著熱情一路前行,加油吧自己。

------------------------------學習開發比賽概要-----------------------------

這兩天在逐步完成中期考核項目,方向盤鎖。

一:單片機

關於ADC0804模數轉換失敗,試圖用另一個ADC0804晶元解決但是由於硬體購買時間性問題,所以更換成ADC0809,現在已經完成了這酒精檢測模塊。

關於指紋模塊現在也完成了錄入指紋,刪除指紋,匹配指紋的模塊,雖然功能不夠多,但可以滿足基本的身份識別要求。

接下來要處理的是demo的設計以及硬體的焊接,並且調整舵機的選擇方向。

在這兩天的開發中,又得到一些開發經驗:

1.在涉及到同一個寄存器的使用的時候,要考慮好原本寄存器的值修改後是否會產生其他影響。好比定時器使用的是同一個寄存器,但是高低位元組分別控制不一樣的定時器,所以在給寄存器的每一位賦值的時候就要考慮清楚,可以使用或運算解決這個問題。

2.完成指紋模塊的時候遇到接收方接受到的數據與發送方發送的不一致,排除代碼問題,波特率問題,最後發現是硬體上的晶振不一致造成的。

3.在控制ADC0809的時鐘頻率的時候,知道了除了用硬體控制外,還可以通過外部使用定時器發送脈衝進行控制。並且正確的時鐘周期在控制硬體很關鍵,這涉及到對硬體的時序控制,通信協議的時序等等。

二:程序員的自我修養

1.預編譯是指將源代碼文件中以#開始的預編譯指令進行處理,經過這個階段後生成.的i文件不包含任何宏定義,因為所有的宏已經被展開,並且包含的文件以及插入到.i文件中。

2.編譯則是將處理完的文件進行一系列的詞法分析,語法分析,語義分析及優化後生成相應的彙編代碼文件。

3.產生機器無關的中間代碼的這個階段稱為前端,這個階段將源代碼輸入到掃描器,然後將代碼分成一系列的記號,如關鍵字,標識符,字面量和特殊符號,然後產生語法樹,這個階段如果有表達式不合法則會報錯,然後對語法進行靜態語義分析,得到表示類型的語法書,然後在源代碼級別進行優化,將可以直接運算的部分進行優化運算,然後得到中間代碼。

--------------------------------感想收穫-------------------------------

雖然方向盤鎖看起來似乎要完成了,每個模塊也測試過可行了,但是還是不能鬆懈,因為還有硬體,這兩周讓我明白硬體也是一個重要的環節,所以剩下的時間要好好完成好demo的設計。

--------------------------------存在問題-------------------------------

1.計算機的組成知識欠缺

2.單片機的知識理解不夠全面。。


推薦閱讀:

編譯原理(2)
編譯原理(3)
從編譯原理看一個解釋器的實現
編譯原理(4.5講)續上一篇實現狀態轉換圖
編譯原理(4)第二章 詞法分析

TAG:暑期 | 51單片機 | 編譯原理 |