作者wasidada (dada)
看板ASM
标题Re: [问题] Microchip PIC18 ASM 疑问
时间Thu Jun 9 02:16:25 2016
※ 引述《kikiqqp (喵食罐头)》之铭言:
谢谢 你的回文
: ※ 引述《wasidada (dada)》之铭言:
: : list p= 18f67j50
: : #include "p18F67J50.inc"
: 先假设你用的是这个
: ;=====================================================================
: ; MPASM PIC18F67J50 processor include
: ;
: ; (c) Copyright 1999-2007 Microchip Technology, All rights reserved
: ;=====================================================================
: : VAL_US equ .147
: : VAL_MS equ .100
: : COUNT equ 0x20
: : COUNT_ms equ 0x21
: : VAL_US equ .147
: 缩排,排版烂的工程师肯定不会写出好程式
: : MAIN_PROG CODE
: : Initial
: : CLRF PORTD
: : CLRF LATD
: : CLRF TRISD
: : MOVLW 0x05
: : MOVWF C
:
C是什麽? 其实 我不知道C是什麽
因为我不知道怎新增变数 就使用 A,B,C,D
後来我try到E 程式就出错了~
: INC中是C EQU H'0000'呦
: : MOVLW 0x0A
: : MOVWF D
: D是什麽?
: INC中是D EQU H'0005'呦
: : start
: : Call Action
: : GOTO start
: 这边是一个LOOP
: : Action:
: : MOVLW 0x07
: : CPFSGT C
: 你在使用CPFSGT有没有注意到手册上 f和 a各代表什麽意思呢?
: 还有C是REG吗?
我是把C当成一般变数在做使用 = =
: : call Action_1
: : call Action_2
:
:你知道执行Action_1後会接着执行Action_2吗?
是 要紧接着执行Action_2
: : MOVLW 0x0B
: : CPFSGT D //後来我发现 给一个变数就可以正常运作了
: CPFSGT是W和F(REG)比较,你改变了W当然结果会变动呀
: 至於是不是你要的结果根本不知道
: : call Action_3
: : call Action_4
: 你知道执行Action_3後会接着执行Action_4吗?
: 你知道执行Action_4後会接着执行Action_1吗?之後回到GOTO start
忘记放return 感谢指导
: : Action_1:
: : BSF LATD,5
: : return //return 是跳出这个函式 执行完Action_1吧
: : Action_2:
: : BSF LATD,6
: : return
: : Action_3:
: : BCF LATD,5
: : return
: : Action_4:
: : BCF LATD,6
: : return
: 以下DELAY略过
: : DELAY_100ms:
: : MOVLW VAL_MS
: : MOVWF COUNT_ms
: : LOOP_ms:
: : CALL DELAY_1ms
: : DECFSZ COUNT_ms,f
: : GOTO LOOP_ms
: : RETURN
: : DELAY_1ms:
: : MOVLW VAL_US
: : MOVWF COUNT
: : DEC_LOOP
: : CALL D_SHORT
: : DECFSZ COUNT,f
: : GOTO DEC_LOOP
: : RETURN
: : D_SHORT
: : CALL D_RET
: : CALL D_RET
: : nop
: : nop
: : D_RET
: : RETURN
: : END
: : 我比较担心的问题是,我的观念是错的结果程式跑起来是正确的
: : 结果没发现 orz
: 除非有特殊必要性,不然我会建议PIC18F先用C来实作想要的部份
: 并利用编译器来看组语
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.127.222.1
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1465409786.A.C21.html