📄 timecnt.lst
字号:
00196 endm
00197 ; *****************************************************************************
00198
00199 ; *****************************************************************************
00200 movff macro HERE, THERE
00201 movf HERE, W
00202 movwf THERE
00203 endm
00204 ; *****************************************************************************
00205
00206 ; *****************************************************************************
00207 movlf macro DAT, THERE
00208 movlw DAT
00209 movwf THERE
00210 endm
00211 ; *****************************************************************************
00212
00213 ; *** Add Literal to File *****************************************************
00214 addlf macro LIT1, FILE1, DIR
00215 movlw LIT1
00216 addwf FILE1, DIR
00217 endm
00218 ; *****************************************************************************
00219
00220 ; *** Subtract Literal from File **********************************************
00221 sublf macro LIT1, FILE1, DIR
00222 movlw LIT1
00223 subwf FILE1, DIR
00224 endm
00225 ; *****************************************************************************
00226
00227 ; *** Branch if Carry *********************************************************
00228 brc macro WHERE
00229 btfsc STATUS, C
00230 goto WHERE
00231 endm
00232 ; *****************************************************************************
00233
00234 ; *** Branch if No Carry ******************************************************
00235 brnc macro WHERE
00236 btfss STATUS, C
00237 goto WHERE
00238 endm
00239 ; *****************************************************************************
00240
00241 ; *** OR file w/ file *********************************************************
00242 iorff macro FILE1, FILE2, DIR
00243 movf FILE2, W
00244 iorwf FILE1, DIR
00245 endm
00246 ; *****************************************************************************
00247
MPASM 5.20 TIMECNT.ASM 11-3-2008 15:53:52 PAGE 6
Event Timer ...
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00248
00016 #include user_mac.inc ; Bring in application specific instructions
00001 #define dvron bsf PORTB, 3
00002 #define dvroff bcf PORTB, 3
00003
00004
00005 ; *****************************************************************************
00006 txdali macro MYREGH, MYREGL
00007 movff MYREGH, DALI_H
00008 movff MYREGL, DALI_L
00009 call SendData
00010 endm
00011 ; *****************************************************************************
00012
00013
00014 ; *****************************************************************************
00015 rxdali macro
00016 call RecvData
00017 endm
00018 ; *****************************************************************************
00019
00020
00021 ; *****************************************************************************
00022 tx macro MYREG
00023 movff MYREG, TXREG
00024 endm
00025 ; *****************************************************************************
00026
00027
00028 ; *****************************************************************************
00029 delay macro MYLIT
00030 movlf high MYLIT, TMR1H
00031 movlf low MYLIT, TMR1L
00032 call DelayCyclesT1
00033 endm
00034 ; *****************************************************************************
00035
00036
00037 ; *****************************************************************************
00038 delayf macro MYFILE_H, MYFILE_L
00039 movff MYFILE_H, TMR1H
00040 movff MYFILE_L, TMR1L
00041 call DelayCyclesT1
00042 endm
00043 ; *****************************************************************************
00044
00045
00046 ; *** Set DALI Bus High *******************************************************
00047 outhi macro
00048 bcf PORTB, 4 ; Turn off clamp
00049 goto $ + 1
00050 bsf PORTB, 5 ; Turn on output
00051 ; goto $ + 1
MPASM 5.20 TIMECNT.ASM 11-3-2008 15:53:52 PAGE 7
Event Timer ...
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00052 ; goto $ + 1
00053 endm
00054 ; *****************************************************************************
00055
00056
00057 ; *** Set DALI Bus Low ********************************************************
00058 outlo macro
00059 bcf PORTB, 5 ; Turn off output driver
00060 goto $ + 1 ; Wait a little for gate discharge
00061 bsf PORTB, 4 ; Turn on clamp
00062 ; goto $ + 1
00063 endm
00064 ; *****************************************************************************
00065
00066
00067 ; *** Emergency Shutdown ******************************************************
00068 esdwn macro WHERE
00069 bcf PORTB, 3 ; Turn off output driver
00070 goto WHERE
00071 endm
00072 ; *****************************************************************************
00073
00074
00075 ; *****************************************************************************
00076 wrtee macro MYREG
00077 banksel EEADR
00078 movwf EEDATA ; Init the first values
00079 movlw TX_EDGE_DELAY_H
00080 sublw MYREG
00081 movwf EEADR
00082 call WriteEEData
00083 endm
00084 ; *****************************************************************************
00085
00086
00017 ; *****************************************************************************
00018
00019
00020 ; *****************************************************************************
0000 00021 EXTERN MILLISECONDS, OVER_LOAD_CNT, COUNTER_L, BRIDGE_STATUS
0000 00022 EXTERN STATUS_COPY, W_COPY
00023 ; *****************************************************************************
00024
00025
00026 ; *****************************************************************************
00027 TIME_COUNT CODE
00028 ; *****************************************************************************
0000 00029 TimeCounter
0000 1283 1303 00030 banksel PORTA ; *** Select Bank 0 ***
00031
00032 sublf 0xC6, TMR0, F ; Prime for 200us overflow (4MHz clock)
0002 30C6 M movlw 0xC6
0003 0281 M subwf TMR0, F
MPASM 5.20 TIMECNT.ASM 11-3-2008 15:53:52 PAGE 8
Event Timer ...
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00033
0004 0A?? 00034 incf COUNTER_L, F ; Count up to 1ms
00035 cflbis COUNTER_L, 0x05, Jp1
0005 3005 M movlw 0x05
0006 02?? M subwf COUNTER_L, W
0007 1C03 M btfss STATUS, C
0008 2??? M goto Jp1
0009 01?? 00036 clrf COUNTER_L ; Reset counter
00037
000A 0A?? 00038 incf MILLISECONDS, F ; Update the event timer
00039
00040 brset BRIDGE_STATUS, 2, Jp1 ; Skip if in overload shutdown
000B 1900 M btfsc BRIDGE_STATUS, 2
000C 2??? M goto Jp1
00041
000D 1F1F 00042 btfss CMCON, C1OUT ; Overload counter
000E 0A?? 00043 incf OVER_LOAD_CNT, F
000F 1B1F 00044 btfsc CMCON, C1OUT
0010 03?? 00045 decf OVER_LOAD_CNT, F
00046
0011 08?? 00047 movf OVER_LOAD_CNT, W ; Hold above 0
0012 1903 00048 btfsc STATUS, Z
0013 1400 00049 bsf OVER_LOAD_CNT, 0
00050
0014 09?? 00051 comf OVER_LOAD_CNT, W ; Determine if OL for more than 255ms
0015 1903 00052 btfsc STATUS, Z
0016 2??? 00053 goto OverLoad
00054
0017 110B 00055 Jp1 bcf INTCON, T0IF ; Clear the int flag
00056
0018 0E?? 00057 swapf STATUS_COPY, W ; Restore data
0019 0083 00058 movwf STATUS
001A 0E?? 00059 swapf W_COPY, F
001B 0E?? 00060 swapf W_COPY, W
00061
001C 0009 00062 retfie ; End of ISR
00063
001D 00064 OverLoad
001D 1500 00065 bsf BRIDGE_STATUS, 2
00066
00067 movlf 0x37, CMCON ; Release the regulator
001E 3037 M movlw 0x37
001F 009F M movwf CMCON
0020 1205 00068 bcf PORTA, 4
00069
0021 110B 00070 bcf INTCON, T0IF ; Clear the int flag
00071
0022 0E?? 00072 swapf STATUS_COPY, W ; Restore data
0023 0083 00073 movwf STATUS
0024 0E?? 00074 swapf W_COPY, F
0025 0E?? 00075 swapf W_COPY, W
00076
0026 0009 00077 retfie
MPASM 5.20 TIMECNT.ASM 11-3-2008 15:53:52 PAGE 9
Event Timer ...
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00078
0000 00079 GLOBAL TimeCounter
00080 ; *****************************************************************************
00081
00082 END
MPASM 5.20 TIMECNT.ASM 11-3-2008 15:53:52 PAGE 10
Event Timer ...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -