飛思卡爾微控制器PIT彙編程式設計(一)
飛思卡爾微控制器(XS128系列)微控制器彙編程式設計(一)
本人就是一個菜鳥,從菜鳥學習彙編程式設計;彙編也沒想象中的複雜和難懂,細細品味還是挺有意思的。就當刷著玩吧,就學起了彙編(這一直是我的一大心病),慢慢學吧,就當了卻了我的一個願望。作為我的第一個彙編程式,仔細縷縷編寫的過程。好了,廢話不說了,開始正題。
手頭上的資料:飛思卡爾微控制器,偵錯程式以及手冊(歐了,就這三樣),對了,下一個飛思卡爾微控制器的彙編指令集哦。
開始如下工作:
首先熟悉中斷機制,確定我們要在哪部分程式設計,以及程式設計之後起到的效果,然後才能更好地程式設計。具體機制參考下圖:
程式設計部分:參考手冊找到PIT部分,根據以往C語言程式設計的經歷,定時器主要通過配置相應的暫存器來實現,為此我們配置所需的暫存器,裡面的暫存器太多了(吧啦吧啦),
其實,每個微控制器都會有相應模組的功能框圖。如下圖所示:
在該部分,手冊裡面給了一個例程:
上圖中的標號1處之所以箭頭用黃色,是因為這是錯的(我也被坑的很慘)。在給的附件程式中會有應該如何修改(最後);其實,仔細想想也就知道了,中斷向量表處於只讀儲存區中,一句MOVW怎麼能將它就該呢(哎)。
上圖中的標號3處的MOVB #$01,PITTF這句必須要有,是為了將相應的標誌清空的(此處和51有區別,此處糾結了很長時間)。
下面是我的程式附件:
;**************************************************************
;* This stationery serves as the framework for a *
;* user application. For a more comprehensive program that *
;* demonstrates the more advanced functionality of this *
;* processor, please see the demonstration applications *
;* located in the examples subdirectory of the *
;* Freescale CodeWarrior for the HC12 Program directory *
;**************************************************************
; Include derivative-specific definitions
INCLUDE 'derivative.inc'
; export symbols
XDEF Entry, _Startup, main
; we use export 'Entry' as symbol. This allows us to
; reference 'Entry' either in the linker .prm file
; or from C/C++ later on
XREF __SEG_END_SSTACK ; symbol defined by the linker for the end of the stack
; variable/data section
MY_EXTENDED_RAM: SECTION
; Insert here your data definition.
; code section
MyCode: SECTION
main:
_Startup:
Entry:
LDS #__SEG_END_SSTACK ; initialize the stack pointer pu
SEI
;**********關看門狗
CLR COPCTL
;*********定時器0暫存器設定
MOVB #$ff,DDRB
MOVB #$55,PORTB
BCLR PITCFLMT,#128
BSET PITCE,#1
BCLR PITMUX,#1
LDAB #244
STAB PITMTLD0
LDD #65535
STD PITLD0
BSET PITCFLMT,#128
BSET PITTF,#1
BSET PITINTE,#1
CLRX
CLI ; enable interrupts
MainLoop: BRA MainLoop
CH0_ISR:
COM PORTB
BSET PITTF ,#1
RTI
ORG $FF7A
FDB CH0_ISR
相關文章
- 飛思卡爾比賽總結篇
- STM彙編程式設計程式設計
- 恩智浦併購飛思卡爾:一場"廉價"資本遊戲遊戲
- 【微控制器彙編實戰】基於51微控制器的搶答器設計
- STM32彙編程式設計程式設計
- 【實驗】 ARM彙編程式設計程式設計
- 51微控制器彙編教程
- 51微控制器彙編程式,溫溼度報警專案
- 彙編學習小記(二)-順序程式設計程式設計
- 彙編實驗小記(五)-迴圈程式設計程式設計
- Linux 的 x86 彙編程式設計(轉)Linux程式設計
- 三個程式設計中遇到的小問題彙編程式設計
- 程式設計師思維程式設計師
- 程式設計師如何圓飛行夢想(一)程式設計師
- Java程式設計常見問題彙總(一)Java程式設計
- 程式設計思維隨想程式設計
- 痞子衡嵌入式:飛思卡爾Kinetis系列MCU啟動那些事(1)- KBOOT架構boot架構
- 關於飛思卡爾電磁組舵機反偏(亂打角)問題的總結
- 痞子衡嵌入式:飛思卡爾Kinetis系列MCU啟動那些事(9)- KBOOT特性(IntegrityCheck)boot
- 讀《Java程式設計思維》的一點隨想Java程式設計
- 在手機上程式設計:自制的小飛可程式設計複數計算器(小飛計算器)程式設計
- 幽默:請尊重前端程式設計師 - catalinmpit前端程式設計師
- 痞子衡嵌入式:飛思卡爾Kinetis系列MCU啟動那些事(11)- KBOOT特性(ROM API)bootAPI
- 飛思卡爾 imx6 GC0308 攝像頭驅動配置除錯過程GC除錯
- 彙編程式碼Helloworld
- 一個程式設計師的編年史程式設計師
- 程式設計師與非程式設計師的思維差異程式設計師
- 計算機執行彙編程式碼的原理計算機
- 微控制器C程式設計例項指導pdfC程式程式設計
- 微控制器C語言程式設計實踐pdfC語言程式設計
- JS非同步程式設計的淺思JS非同步程式設計
- 什麼是程式設計師思維?程式設計師
- 如何讓程式設計思維保持活化?程式設計
- JAVA程式設計師之路 亞思晟Java程式設計師
- Cats(一):從函數語言程式設計思維談起函數程式設計
- 編織如程式設計程式設計
- 痞子衡嵌入式:飛思卡爾Kinetis系列MCU啟動那些事(3)- KBOOT配置(FOPT/BOOT Pin/BCA)boot
- 飛龍的程式設計師書單–前端程式設計師前端