Re: [問題] Microchip PIC18 ASM 疑問

作者: kikiqqp (喵食罐頭)   2016-06-09 14:23:55
寫組合語言很依賴硬體datasheet,強烈建議你先把硬體的部份全部看完
尤其是RAM的部份,第五章 MEMORY ORGANIZATION
http://ww1.microchip.com/downloads/en/DeviceDoc/39775b.pdf
※ 引述《wasidada (dada)》之銘言:
: ※ 引述《kikiqqp (喵食罐頭)》之銘言:
: 謝謝 你的回文
: : 先假設你用的是這個
: : ;=====================================================================
: : ; MPASM PIC18F67J50 processor include
: : ;
: : ; (c) Copyright 1999-2007 Microchip Technology, All rights reserved
: : ;=====================================================================
: : 縮排,排版爛的工程師肯定不會寫出好程式
: C是什麼? 其實 我不知道C是什麼
: 因為我不知道怎新增變數 就使用 A,B,C,D
: 後來我try到E 程式就出錯了~
所以你一開始就錯了,因為你根本沒有設定到變數,而是拿一個現有的功能暫存器來用
卻完全不在意這暫存器本來是做什麼的
這邊你得先搞懂 EQU 是做什麼用的
: : INC中是C EQU H'0000'呦
: : D是什麼?
: : INC中是D EQU H'0005'呦
: : 這邊是一個LOOP
: : 你在使用CPFSGT有沒有注意到手冊上 f和 a各代表什麼意思呢?
: : 還有C是REG嗎?
: 我是把C當成一般變數在做使用 = =
但是他不一定是你能用的變數,通常是其他週邊使用的
: :你知道執行Action_1後會接著執行Action_2嗎?
: 是 要緊接著執行Action_2
: : CPFSGT是W和F(REG)比較,你改變了W當然結果會變動呀
: : 至於是不是你要的結果根本不知道
: : 你知道執行Action_3後會接著執行Action_4嗎?
: : 你知道執行Action_4後會接著執行Action_1嗎?之後回到GOTO start
: 忘記放return 感謝指導
: : 以下DELAY略過
: : 除非有特殊必要性,不然我會建議PIC18F先用C來實作想要的部份
: : 並利用編譯器來看組語
如果你是自己入門
MICROCHIP有免費和付費課程,會由基礎一步一步帶起,網路上也很多教學資源
如果你有師父帶你入門,那這些基本都沒教你就要你入火坑也太糟糕了點
作者: wasidada (dada)   2016-06-10 01:47:00
謝謝 我先花一點時間來K資料 再來try function
作者: selfhu (水管爆了)   2016-06-22 05:06:00
變數的命名盡量不要與SFR名稱相同,因為寫inc檔的人會考量到可以讓使用者能快速上手,名稱會照spec走

Links booklink

Contact Us: admin [ a t ] ucptt.com