📄 datalog.sdi
字号:
0000023A,6EF6,, movwf TBLPTRL
0000023C,EF8C F000,, goto UART_Puts
00000240,,OUT_HELP,OUT_HELP
00000240,0E00,, movlw UPPER(MSG_HELP)
00000242,6EF8,, movwf TBLPTRU
00000244,0E03,, movlw HIGH(MSG_HELP)
00000246,6EF7,, movwf TBLPTRH
00000248,0EC8,, movlw LOW(MSG_HELP)
0000024A,6EF6,, movwf TBLPTRL
0000024C,EF8C F000,, goto UART_Puts
00000250,,OUT_COMMAND,OUT_COMMAND
00000250,0E00,, movlw UPPER(MSG_COMMAND)
00000252,6EF8,, movwf TBLPTRU
00000254,0E03,, movlw HIGH(MSG_COMMAND)
00000256,6EF7,, movwf TBLPTRH
00000258,0EB6,, movlw LOW(MSG_COMMAND)
0000025A,6EF6,, movwf TBLPTRL
0000025C,EF8C F000,, goto UART_Puts
00000260,,OUT_CRLF,OUT_CRLF
00000260,0E00,, movlw UPPER(MSG_CRLF)
00000262,6EF8,, movwf TBLPTRU
00000264,0E03,, movlw HIGH(MSG_CRLF)
00000266,6EF7,, movwf TBLPTRH
00000268,0EC4,, movlw LOW(MSG_CRLF)
0000026A,6EF6,, movwf TBLPTRL
0000026C,EF8C F000,, goto UART_Puts
00000270,,OUT_UNKNOWN,OUT_UNKNOWN
00000270,0E00,, movlw UPPER(MSG_UNKNOWN)
00000272,6EF8,, movwf TBLPTRU
00000274,0E04,, movlw HIGH(MSG_UNKNOWN)
00000276,6EF7,, movwf TBLPTRH
00000278,0E0E,, movlw LOW(MSG_UNKNOWN)
0000027A,6EF6,, movwf TBLPTRL
0000027C,EF8C F000,, goto UART_Puts
00000280,,OUT_LOG,OUT_LOG
00000280,0E00,, movlw UPPER(MSG_LOG)
00000282,6EF8,, movwf TBLPTRU
00000284,0E04,, movlw HIGH(MSG_LOG)
00000286,6EF7,, movwf TBLPTRH
00000288,0E22,, movlw LOW(MSG_LOG)
0000028A,6EF6,, movwf TBLPTRL
0000028C,EF8C F000,, goto UART_Puts
00000290,,OUT_DUMP,OUT_DUMP
00000290,0E00,, movlw UPPER(MSG_DUMP)
00000292,6EF8,, movwf TBLPTRU
00000294,0E04,, movlw HIGH(MSG_DUMP)
00000296,6EF7,, movwf TBLPTRH
00000298,0E46,, movlw LOW(MSG_DUMP)
0000029A,6EF6,, movwf TBLPTRL
0000029C,EF8C F000,, goto UART_Puts
,,,
,,,;====================================================================
,,,; Output value to USART as two hexadecimal digits
,,,;--------------------------------------------------------------------
,,,; W contains value to be output
,,,;--------------------------------------------------------------------
000002A0,,OUT_HEX,OUT_HEX
000002A0,6E00,, movwf TMP1
000002A2,3800,, swapf TMP1, W
000002A4,D801,, rcall OUT_HEX_SUB1
000002A6,5000,, movf TMP1, W
000002A8,,OUT_HEX_SUB1,OUT_HEX_SUB1
000002A8,0B0F,, andlw 0x0F
000002AA,0FF6,, addlw 0xF6
000002AC,B0D8,, btfsc STATUS, C
000002AE,0F07,, addlw 0x07
000002B0,0F3A,, addlw 0x3A
000002B2,D72D,, bra UART_Putch
,,,
,,,;====================================================================
,,,; Start logging
,,,;--------------------------------------------------------------------
000002B4,,LOG_START,LOG_START
000002B4,D818,, rcall LOG_RESET
000002B6,D81B,, rcall INIT_ADC
000002B8,D822,, rcall INIT_TIMER
000002BA,D828,, rcall START_TIMER
000002BC,8ED0,, bsf RCON, IPEN ; Enable interrupt priority
000002BE,8EF2,, bsf INTCON, GIEH ; Enable high prority interrupts
000002C0,8CF2,, bsf INTCON, GIEL ; Enable low prority interrupts
000002C2,0012,, return
,,,
,,,;====================================================================
,,,; Stop logging
,,,;--------------------------------------------------------------------
000002C4,,LOG_STOP,LOG_STOP
000002C4,9EF2,, bcf INTCON, 7 ; Disable interrupts
000002C6,D824,, rcall STOP_TIMER
000002C8,D827,, rcall STOP_ADC
000002CA,DF3D,, rcall ATA_Block_Write ; Flush buffer to disk
000002CC,,LOG_UPDATE,LOG_UPDATE
000002CC,CFD9 F00E,, movff FSR2L, END_POSL ; Copy over to end log pointers
000002D0,CFDA F00F,, movff FSR2H, END_POSH
000002D4,C002 F010,, movff ATA_A0, END_ATA_A0
000002D8,C003 F011,, movff ATA_A1, END_ATA_A1
000002DC,C004 F012,, movff ATA_A2, END_ATA_A2
000002E0,C005 F013,, movff ATA_A3, END_ATA_A3
000002E4,0012,, return
,,,
,,,;====================================================================
,,,; Reset log ready for start of logging
,,,;--------------------------------------------------------------------
000002E6,,LOG_RESET,LOG_RESET
000002E6,EE24 F000,, lfsr FSR2, ATA_BUF ; Point to start of data capture buffer
000002EA,DF4A,, rcall ATA_A_RESET
000002EC,0012,, return
,,,
,,,;====================================================================
,,,; Initialise ADC converter
,,,;--------------------------------------------------------------------
000002EE,,INIT_ADC,INIT_ADC
000002EE,0E0E,, movlw B'00001110'
000002F0,6EC1,, movwf ADCON1
000002F2,0EC1,, movlw B'11000001'
000002F4,6EC2,, movwf ADCON0
000002F6,9C9F,, bcf IPR1, ADIP ; Low priority
000002F8,9C9E,, bcf PIR1, ADIF ; Clear any pending interrupt
000002FA,8C9D,, bsf PIE1, ADIE ; Enable ADC conversion interrupt
,,,
000002FC,0012,, return
,,,
,,,;====================================================================
,,,; Initialise timer 0
,,,;--------------------------------------------------------------------
000002FE,,INIT_TIMER,INIT_TIMER
000002FE,0E46,, movlw B'01000110'
00000300,6ED5,, movwf T0CON
00000302,0E01,, movlw D'1' ; Setup countdown on TMR0 for ADC trigger
00000304,6E0D,, movwf T0COUNT
00000306,94F2,, bcf INTCON, TMR0IF ; Clear any pending TMR0 overflow interrupt
00000308,8AF2,, bsf INTCON, TMR0IE ; Enable timer 0 overflow interrupt
0000030A,0012,, return
,,,
,,,;====================================================================
,,,; Start timer 0
,,,;--------------------------------------------------------------------
0000030C,,START_TIMER,START_TIMER
0000030C,8ED5,, bsf T0CON, 7 ; Start timer 0
0000030E,0012,, return
,,,
,,,;====================================================================
,,,; Stop timer 0
,,,;--------------------------------------------------------------------
00000310,,STOP_TIMER,STOP_TIMER
00000310,9AF2,, bcf INTCON, TMR0IE ; Disable timer 0 overflow interrupt
00000312,94F2,, bcf INTCON, TMR0IF ; Clear any pending TMR0 overflow interrupt
00000314,9ED5,, bcf T0CON, 7 ; Stop timer 0
00000316,0012,, return
,,,
,,,;====================================================================
,,,; Stop ADC conversion
,,,;--------------------------------------------------------------------
00000318,,STOP_ADC,STOP_ADC
00000318,9C9D,, bcf PIE1, ADIE ; Diasable ADC conversion interrupt
0000031A,9C9E,, bcf PIR1, ADIF ; Clear any pending interrupt
0000031C,90C2,, bcf ADCON0, ADON ; Turn off ADC module
0000031E,0012,, return
,,,
,,,;====================================================================
,,,; Dump data from ATA to USART in hex
,,,;--------------------------------------------------------------------
00000320,,DUMP_ALL,DUMP_ALL
00000320,DF2F,, rcall ATA_A_RESET
00000322,EE26 F000,, lfsr FSR2, ATA_BUF_END
00000326,0E10,, movlw 0x10
00000328,6E16,, movwf OUT_COUNT
,,,
0000032A,5005,, movf ATA_A3, W ; Exit if no data to display
0000032C,1004,, iorwf ATA_A2, W
0000032E,1003,, iorwf ATA_A1, W
00000330,1002,, iorwf ATA_A0, W
00000332,A4D8,, btfss STATUS, Z
00000334,D00E,, bra DUMP_ALL_JP1
00000336,0E04,, movlw HIGH(ATA_BUF)
00000338,620F,, cpfseq END_POSH
0000033A,D00B,, bra DUMP_ALL_JP1
0000033C,0E00,, movlw LOW(ATA_BUF)
0000033E,620E,, cpfseq END_POSL
00000340,D008,, bra DUMP_ALL_JP1
00000342,D029,, bra DUMP_ALL_EXIT
,,,
00000344,,DUMP_ALL_LP1,DUMP_ALL_LP1
00000344,0E06,, movlw HIGH(ATA_BUF_END) ; Check if next sector required
00000346,62DA,, cpfseq FSR2H
00000348,D007,, bra DUMP_ALL_JP2
0000034A,0E00,, movlw LOW(ATA_BUF_END)
0000034C,62D9,, cpfseq FSR2L
0000034E,D004,, bra DUMP_ALL_JP2
00000350,DF1C,, rcall ATA_A_INC
00000352,,DUMP_ALL_JP1,DUMP_ALL_JP1
00000352,DEE6,, rcall ATA_Block_Read ; Get a new sector
00000354,EE24 F000,, lfsr FSR2, ATA_BUF ; Point buffer to start of sector
00000358,,DUMP_ALL_JP2,DUMP_ALL_JP2
,,,
00000358,0E20,, movlw 0x20
0000035A,DED9,, rcall UART_Putch
,,,
0000035C,CFDE F001,, movff POSTINC2, TMP2
00000360,50DE,, movf POSTINC2, W
00000362,DF9E,, rcall OUT_HEX
00000364,5001,, movf TMP2, W
00000366,DF9C,, rcall OUT_HEX
,,,
00000368,2E16,, decfsz OUT_COUNT
0000036A,D003,, bra DUMP_ALL_JP3
0000036C,0E10,, movlw 0x10
0000036E,6E16,, movwf OUT_COUNT
00000370,DF77,, rcall OUT_CRLF
00000372,,DUMP_ALL_JP3,DUMP_ALL_JP3
00000372,500F,, movf END_POSH, W ; Check not at the end of data
00000374,62DA,, cpfseq FSR2H
00000376,D7E6,, bra DUMP_ALL_LP1
00000378,500E,, movf END_POSL, W
0000037A,62D9,, cpfseq FSR2L
0000037C,D7E3,, bra DUMP_ALL_LP1
0000037E,5013,, movf END_ATA_A3, W
00000380,6205,, cpfseq ATA_A3
00000382,D7E0,, bra DUMP_ALL_LP1
00000384,5012,, movf END_ATA_A2, W
00000386,6204,, cpfseq ATA_A2
00000388,D7DD,, bra DUMP_ALL_LP1
0000038A,5011,, movf END_ATA_A1, W
0000038C,6203,, cpfseq ATA_A1
0000038E,D7DA,, bra DUMP_ALL_LP1
00000390,5010,, movf END_ATA_A0, W
00000392,6202,, cpfseq ATA_A0
00000394,D7D7,, bra DUMP_ALL_LP1
00000396,,DUMP_ALL_EXIT,DUMP_ALL_EXIT
00000396,0012,, return
,,,
,,,;====================================================================
,,,; Program messages
,,,;--------------------------------------------------------------------
00000398,,MSG_VERSION,MSG_VERSION
00000398,614C 6362 6E65,, DATA "Labcenter Data Logger v1.0\r\n", 0
000003B6,,MSG_COMMAND,MSG_COMMAND
000003B6,0A0D 6F43 6D6D,, DATA "\r\nCommand? ", 0
000003C4,,MSG_CRLF,MSG_CRLF
000003C4,0A0D 0000,, DATA "\r\n", 0
000003C8,,MSG_HELP,MSG_HELP
000003C8,6548 706C 0D3A,, DATA "Help:\r\nH - This help\r\nV - Version\r\nL - Start logging\r\nD - Dump log\r\n", 0
0000040E,,MSG_UNKNOWN,MSG_UNKNOWN
0000040E,6E55 6E6B 776F,, DATA "Unknown command.\r\n", 0
00000422,,MSG_LOG,MSG_LOG
00000422,6F4C 6767 6E69,, DATA "Logging...\r\nPress any key to stop.", 0
00000446,,MSG_DUMP,MSG_DUMP
00000446,7453 7261 2074,, DATA "Start of dump.\r\n", 0
,,,;====================================================================
,,,END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -