跨入AVR
序:??????
?????? 以前一直用的是STC51 + 飛思卡爾xs128組合,簡單的就用51寫,復雜的用xs128,對于AVR、PIC、STM系列是只聞其聲,不見其人。?最近因為要做飛思卡爾電磁磁場發生器而開始第一次接觸AVR,頓有相見恨晚之感。
?????? 簡單點說,有內部上拉電阻,引腳30ma的拉電流和灌電流,內部硬件PWM和ADC等,而且價格也不貴,我正式決定用atmege8代替51。
??
? 對端口操作:
?? AVR端口是真正的雙向端口,不像51偽雙向。這也是AVR的一項優勢,只是操作時大家注意DDRn就可以了。真正雙向端口在模擬時序方面不如偽雙向的方便。
?? DDRn PORTn PINn 解釋:n為端口號:ABCDE
?? DDRn:控制端口是輸入還是輸出,0為輸入,1為輸出。個人記憶方法:一比零大所以往外擠,即1為輸出,0為輸入。
?? PORTn:從引腳輸出信號,當DDRn為1時,可以通過PORTn=x等端口操作語句給引腳輸出賦值。
?? PINn:從引腳讀輸入信號,無論DDRn為何值,都可以通過x=PINn獲得端口n的外部電平。
??
?? DDxn?? PORTxn?? PUD (in SFIOR)?? I/O??????? 上拉電阻???? 說明
? 0???????????? 0?????????????? X??????????????????????????? 輸入??????No?????????????? 高阻態 (Hi-Z)
? 0???????????? 1?????????????? 0??????????????????????????? 輸入??????Yes???????????? 被外部電路拉低時將輸出電流
? 0???????????? 1?????????????? 1?????????????????????????? ?輸入??????No?????????????? 高阻態(Hi-Z)
? 1???????????? 0?????????????? X?????????????????????????? ?輸出????? No?????????????? 輸出低電平 ( 漏電流)
? 1???????????? 1?????????????? X??????????????????????????? 輸出??????No?????????????? 輸出高電平 ( 拉電流)
?
總結
- 上一篇: 【原译】简单的Malloc实现
- 下一篇: apache的防DDOS模块-mod_e