昨天我在已經跑了 6 個核的 FPPA 上多加了可以反應按鍵並發聲的程式~
只用了不到一分鐘,結果非常滿意,不止聲音好、即時、還能在背景執行(形容成這樣蠻貼切的)~
底下各音階個音符的頻率:
音階 Do Re Mi Fa So La Si
低音 頻率
(Hz) 131 147 165 175 196 220 247
中音 頻率
(Hz) 262 294 330 349 392 440 494
高音 頻率
(Hz) 522 587 659 700 784 880 988
讓MCU發聲,這讓我想到了之前寫 PIC 程式的一些心得…
以前寫慣了 Windows 程式,總是習慣於用事件的處理方式來寫作,當某個條件觸發時才會去作處理。
有點類似 MCU 的 interrupt 處理方式~中斷來了或 timer 到了才去作特定的事。
事實上這樣子寫作也確實比較條理分明,有的負責處理狀態的變化、有的負責處理該作的事、有的負責時序的變化,CPU在不同的狀態之間飛舞,一切都在你的預料之中…
初寫 PIC 也是用這樣子的方式來寫程式~寫起來很快~難只難在一些時序的計算光用腦袋想像是不夠的~(這時有個示波器什麼都能迎刃而解)~再怎麼寫跑起來也是八九不離十,比起複雜的AP程式,某些地方來講 MCU 的程式確實是非常簡單~(呵~當然是在不考慮硬體的情況下)
但是這樣子的情況在卻被一個簡單的嗶嗶聲給崩解~
問題關鍵點是:
1.我需要定時用掃描的方式去作輸出(例如掃LED DISPLAY數字出來)
2.我還要在有按鍵按住時持續發出嗶~~~的音調
在PIC,我用TIMER中斷來製造1,我用POOLING的方式來偵測按鈕的動作,同時在按住時,持續發聲。
程式看起來沒問題~跑起來卻完全不是想像那樣美妙= ="
發出來的聲音是破破的~聽的出來有斷斷續續~LED也看的到閃閃動人= =
搞了 N 種方法~努力嚐式去均擔、固定住兩邊的時序~而過程跟結果卻都是非常惱人~"~
顧了這邊掉了那邊~時序怎麼橋就是橋不順~
最後是妥協了~為了發出正常的聲音,在按鍵時只得將LED先關掉~(結果證明聲音比較重要,搞不好還沒人意識到LED燈不見了)
回想起來~也算是一場惡夢了= =" (還不是自己功力太差才這樣 = =" )
現在覺得~有多核可以用還真是幸福~
2007年8月2日 星期四
訂閱:
張貼留言 (Atom)
VirtualBox 空間減肥
sdelete64 -z c: VBoxManage modifymedium disk "/Users/fellow/VirtualBox VMs/Win10/Win10.vdi" --compact *.vdi 路徑可以在 VirtualBox 儲...
-
https://github.com/ljean/modbus-tk/ install pip… sudo apt-get install python-pip install... download modbus_tk-x.x.x.tar.gz tar zxvf...
-
ARis... ARis 是日本一間公司出品的產品,應用了 ARToolKit 技術。 展示影片在這… http://www.youtube.com/watch?v=yCCx7zANsGE YouTube上可以找到更多類似的影片。 這邊是我用 FLARToolK...
-
由於ASSEMBLA即將開始收費,因此要把所有的SVN進行大搬家,連帶的一些教學文件也跟著搬家了,看來還是GOOGLE的窩最舒適(重點是免費) FPPA實驗平台教學教材-使用C語言 FPPA實驗平台簡介 實驗(一) 8位元LED輸出單元 與 模組設計總論 實驗(二) 按鍵開關輸入...
沒有留言:
張貼留言