我想大家猜得到或許猜不到, 又多少人知道每種課程當中想教的精神, 我想甚至有些老師也忘了其中最重要的涵義... 對不起久久一次新增竟然是嚴肅的開頭.. 這幾天C語言老師要我們做紅綠燈, 基本上一開始我聽不懂他所表達的意思, 我很少聽不懂,我只是想表達他的遣詞用字該練練, 過一星期再叫他重新表達一次之後我才瞭解, 他要我們模擬路上的紅綠燈動作寫個程式用LED閃給他看。 我瞭解他想要的是什麼,可是這比較重於設計, 不是隨便複製貼貼改個語法只要邏輯想一下就可以改出來, 在這個去綠島回來落差很大的夜晚, 我無聊得不是先打綠島遊記而是先打作業心得? 我想我越來越往工程師宅宅的路走了...嘖嘖.... ================思路分隔線================ 平常我都是直接貼上程式碼, 甚至連說明都沒打上去,我猜這樣一定沒人去看過那些程式的想法, 反正大家都是覺得:阿反正有過老師那關就好了,原理或過程關我屁事。 更雞掰的會想:阿都去找他燒就好了,這學期我穩過的了,科科。 算了,再講要離題了。 首先我畫出一個十字路口的情形     │LED1 │ ────┘   └──── LED2 ────┐   ┌────     │   │ LED1與LED2正面圖 ┌───────┐ │○ ○ ○ ○│ └───────┘ 從左到又分別構想為 左轉燈、紅燈、黃燈、綠燈 並以 Left、Red、Yellow、Green代表 再來翻出IC的port腳圖,決定要讓LED1與2從哪輸出, 忘記沒關係,因為我也沒記過,隨時都有資訊 何必記? 為了思考與配線方便,我把LED1與LED2分別從port0與port3輸出 以下我又雞婆的把LED縮寫跟接腳重新排列了一次 LED1. 代碼 port腳位 第X腳  L  P0.0   1  R  P0.1   2  Y  P0.2   3  G  P0.3   4 LED2. 代碼 port腳位 第X腳  L  P3.0   10  R  P3.1   11  Y  P3.2   12  G  P3.3   13 接著是流程方面的設計: 首先可以先不管兩個燈的差距, 想完LED1的流程加個幾秒就是LED1與LED2程式的差距時間, 因為考慮現實面,直角路口的紅綠燈有兩個都紅燈讓車道淨空的時間。 LED1:G---------->Y--->R.L----->R.Y--->R..... LED2:R------------------------------------->G.... LED1: 綠燈過了10個單位時間變黃燈,(此時LED2為紅燈狀態) 黃燈過了3個單位時間變紅燈與左轉燈, 紅燈左轉燈過了5個單位時間變紅黃燈, 紅黃燈過了3個單位時間變紅燈。 加入一個車道淨空延遲,(直到延遲結束LED2開始同LED1的流程) 然後另一方向車道開始重複第一個流程。 就這樣,後面的配線以及接線圖我不用說也會, 那程式碼呢? 很抱歉,沒有程式碼,我已經把程式碼翻成中文了 只需要翻回程式語言就可以了,很簡單的。 ================思路分隔線================ 另外有一點要注意的, 是關於延遲時間的拿捏, 才能夠慢得剛好,不會讓人來不及看, 又可以快得剛好,不會讓人看得不耐煩, 由於IC時脈是12MHZ,相當於每秒12萬次, 延遲函數部份改為12,000後,delay(x)就相當於0.x秒, 不能直接用120,000是因為IC好像不能接受這樣,會卡住=_=... 不過實際測試delay(35),默數大約是兩秒, 就這樣。 多自己想有益身體健康,腦袋發展, 別像某些學長只會在網誌上嘴砲, 國文造詣不夠又愛亂用詞打文章自以為文豪。 一個人最可悲就是看不透自己, 國文不好就乖乖拿焊槍,很難? 以上做夢 晚安。
文章標籤
全站熱搜
創作者介紹
創作者 ktr 的頭像
ktr

不要管別人說什麼,隨著你內心深處真正的感覺認真的揮霍人生吧。

ktr 發表在 痞客邦 留言(0) 人氣(46)