RCU Forums - View Single Post - CDI gr8flyer55
View Single Post
Old 02-10-2012, 07:39 PM
  #107  
gr8flyer55
Senior Member
 
Join Date: Nov 2005
Location: Hamburg, PA
Posts: 805
Likes: 0
Received 0 Likes on 0 Posts
Default RE: CDI gr8flyer55

This is the ASM file for the 12F683 chip on the timer board.


Code:
;nyemicdi2T  PIC 12F683 4Mhz.
 
             LIST      P=12F683, F=INHX8M
             include "P12F683.inc"
             ORG     0x0000    
             GOTO    Label_0001
             ORG     0x0004
             MOVWF   0x70
             SWAPF   STATUS    , W
             CLRF    STATUS
             MOVWF   0x71
             INCF    0x27      , F      ;TMR0 interrupt  0x27=TMR0 overflow registers
             BCF     INTCON    , T0IF    
             SWAPF   0x71      , W
             MOVWF   STATUS
             SWAPF   0x70      , F
             SWAPF   0x70      , W
             RETFIE
             NOP                        ;ignition advance table
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0000
             RETLW	0001
             RETLW	0001
             RETLW	0001
             RETLW	0001
             RETLW	0001
             RETLW	0001
             RETLW	0002
             RETLW	0002
             RETLW	0002
             RETLW	0002
             RETLW	0002
             RETLW	0003
             RETLW	0003
             RETLW	0003
             RETLW	0003
             RETLW	0003
             RETLW	0004
             RETLW	0004
             RETLW	0004
             RETLW	0004
             RETLW	0004
             RETLW	0004
             RETLW	0005
             RETLW	0005
             RETLW	0005
             RETLW	0005
             RETLW	0005
             RETLW	0006
             RETLW	0006
             RETLW	0006
             RETLW	0006
             RETLW	0006
             RETLW	0007
             RETLW	0007
             RETLW	0007
             RETLW	0007
             RETLW	0007
             RETLW	0007
             RETLW	0009
             RETLW	000A
             RETLW	000C
             RETLW	000C
             RETLW	000F
             RETLW	0010
             RETLW	0012
             RETLW	0013
             RETLW	0015
             RETLW	0016
             RETLW	0018
             RETLW	0019
             RETLW	001A
             RETLW	001B
             RETLW	001E
             RETLW	0020
             RETLW	0021
             RETLW	0023
             RETLW	0024
             RETLW	0025
             RETLW	0027
             RETLW	0028
             RETLW	002A
             RETLW	002B
             RETLW	002D
             RETLW	002F
             RETLW	0030
             RETLW	0032
             RETLW	0032
             RETLW	0034
             RETLW	0036
             RETLW	0037
             RETLW	0039
             RETLW	0039
             RETLW	003C
             RETLW	003D
             RETLW	003F
             RETLW	0040
             RETLW	0042
             RETLW	0044
             RETLW	0045
             RETLW	0047
             RETLW	0049
             RETLW	004A
             RETLW	004B
             RETLW	004D
             RETLW	004E
             RETLW	004F
             RETLW	0051
             RETLW	0052
             RETLW	0054
             RETLW	0055
             RETLW	0057
             RETLW	0058
             RETLW	005A
             RETLW	005B
             RETLW	005D
             RETLW	005E
             RETLW	0060
             RETLW	0061
             RETLW	0063
             RETLW	0064
             RETLW	0066
             RETLW	0067
             RETLW	0069
             RETLW	006A
             RETLW	006D
             RETLW	006E
             RETLW	006E
             RETLW	0071
             RETLW	0071
             RETLW	0074
             RETLW	0075
             RETLW	0077
             RETLW	0078
             RETLW	0078
             RETLW	007A
             RETLW	007B
             RETLW	007C
             RETLW	007D
             RETLW	007E
             RETLW	007F
             RETLW	0080
             RETLW	0081
             RETLW	0082
             RETLW	0083
             RETLW	0084
             RETLW	0085
             RETLW	0086
             RETLW	0087
             RETLW	0088
             RETLW	0089
             RETLW	008A
             RETLW	008B
             RETLW	008C
             RETLW	008D
             RETLW	008E
             RETLW	008F
             RETLW	008F
             RETLW	0090
             RETLW	0091
             RETLW	0092
             RETLW	0093
             RETLW	0094
             RETLW	0095
             RETLW	0096
             RETLW	0097
             RETLW	0098
             RETLW	0099
             RETLW	009A
             RETLW	009B
             RETLW	009C
             RETLW	009D
             RETLW	009E
             RETLW	009F
             RETLW	00A0
             RETLW	00A1
             RETLW	00A2
             RETLW	00A3
             RETLW	00A4
             RETLW	00A5
             RETLW	00A6
             RETLW	00A7
             RETLW	00A8
             RETLW	00A9
             RETLW	00AA
             RETLW	00AB
             RETLW	00AC
             RETLW	00AD
             RETLW	00AE
             RETLW	00AF
             RETLW	00B0
             RETLW	00B1
             RETLW	00B2
             RETLW	00B3
             RETLW	00B3
             RETLW	00B4
             RETLW	00B5
             RETLW	00B6
             RETLW	00B7
             RETLW	00B8
             RETLW	00B9
             RETLW	00BA
             RETLW	00BB
             RETLW	00BC
             RETLW	00BD
             RETLW	00BE
             RETLW	00BF
             RETLW	00C0
             RETLW	00C1
             RETLW	00C2
             RETLW	00C3
             RETLW	00C4
             RETLW	00C5
             RETLW	00C6
             RETLW	00C7
             RETLW	00C8
             RETLW	00C9
             RETLW	00CA
             RETLW	00CB
             RETLW	00CC
             RETLW	00CD
             RETLW	00CE
             RETLW	00CF
             RETLW	00D0
             RETLW	00D1
             RETLW	00D1
             RETLW	00D3
             RETLW	00D4
             RETLW	00D5
             RETLW	00D6
             RETLW	00D7
             RETLW	00D7
             RETLW	00D7
             RETLW	00D8
             RETLW	00DA
             RETLW	00DB
             RETLW	00DC
             RETLW	00DD
             RETLW	00DE
             RETLW	00DE
             RETLW	00DF
             RETLW	00E1
             RETLW	00E2
             RETLW	00E3
             RETLW	00E4
             RETLW	00E5
             RETLW	00E5
             RETLW	00E6
             RETLW	00E8
             RETLW	00E9
             RETLW	00EA
             RETLW	00EB
             RETLW	00EC
             RETLW	00EC
             RETLW	00ED
             RETLW	00EF
             RETLW	00F0
             RETLW	00F1
             RETLW	00F2
             RETLW	00F3
             RETLW	00F3
             RETLW	00F5
             RETLW	00F6
             RETLW	00F7
             RETURN
 Label_0006  BCF     STATUS    , RP1
             BCF     STATUS    , RP0
             MOVF    0x22      , W
             MOVWF   PCLATH
             MOVF    0x21      , W
             MOVWF   PCL
             RETURN
 Label_0001  BCF     STATUS    , RP1
             BSF     STATUS    , RP0
             MOVLW   0X61
             MOVWF   OSCCON
 Label_0013  BTFSS   OSCCON    , HTS
             GOTO    Label_0013           
             BCF     STATUS    , RP1
             BCF     STATUS    , RP0
             CLRF    GPIO
             MOVLW   0x07
             MOVWF   CMCON0               ;comparator module Initialization
             BCF     STATUS    , RP1
             BSF     STATUS    , RP0
             CLRF    ANSEL
             MOVLW   0x0C
             MOVWF   TRISIO              ;GP2= HALL sensor input. GP0-GP1, ouput
             MOVLW   0x07
             MOVWF   OPTION_REG          ;OPTION_REG 07=256uS prescaler
             BCF     STATUS    , RP1
             BCF     STATUS    , RP0
             MOVLW   0x02
             MOVWF   GPIO
             CLRF    0x24
             CLRF    0x27
             CLRF    TMR0                ;clear TMR0 
             MOVLW   0xA0
             MOVWF   INTCON              ;interrupt Initialization   
 Label_0003  BTFSC   GPIO      ,GP2      ;BTFSC = wait for high pulse on Hall switch (-_+). 
             GOTO    Label_0002          ;BTFSS = wait for low pulse on Hall switch (+_-)  Alterable!!
             MOVLW   0x01
             MOVWF   0x24
             GOTO    Label_0003 
 Label_0002  MOVF    0x24      , F
             BTFSC   STATUS    , Z
             GOTO    Label_0003
             CLRF    INTCON
             MOVF    TMR0      , W
             MOVWF   0x25
             CLRF    TMR0
             MOVLW   0x01
             SUBWF   0x27      , W         
             BTFSC   STATUS    , Z            
             GOTO    Label_0011          ;458917 RPM Yes (~-26°degree)
             BTFSS   STATUS    , C 
             GOTO    Label_0005          ;917RPM< Table values
             MOVLW   0xFF                ;0-458 RPM Yes
             MOVWF   0x25         
 Label_0011  NOP                         ;458-917 RPM Yes (~-26°degree)
             NOP                         ;delay time value=458-917RPM~-26°degree Initialization 
             NOP                               
             NOP                         ;delay time
             NOP                         ;((12NOP)18uS × TMR0)+RETLW 255 at current value (00F7=-26degree)Alterable!!
             NOP                         ;EXCEL=I-515, value (blue)
             NOP                         
             NOP
             NOP
             NOP
             NOP
             NOP
             MOVF    0x25      , F
             BTFSC   STATUS    , Z
             GOTO    Label_0010
             DECF    0x25      , F
             GOTO    Label_0011
 Label_0010  MOVLW   0xFF
             MOVWF   0x25
 Label_0005  MOVF    0x25      , W
             ADDLW   00F4                ;RPM limiter   F4=20380 RPM     Alterable!!
             BTFSS   STATUS    , C
             GOTO    Label_0012
             MOVF    0x25      , W
             ADDLW   0x10
             MOVWF   0x21
             MOVLW   0x00
             BTFSC   STATUS    , C
             ADDLW   0x01
             MOVWF   0x22
             MOVF    PCLATH    , W 
             MOVWF   0x20
             CALL    Label_0006
             MOVWF   0x23
             MOVF    0x20      , W
             MOVWF   PCLATH
             MOVF    0x23      , F
             BTFSC   STATUS    , Z
             GOTO    Label_0007
 Label_0008  NOP
             NOP
             NOP
             NOP
             NOP
             NOP                        ;RETLW value(0x23 registers) x 19uS=16 NOP    Alterable!! 
             NOP                        ;EXCEL=K-1, value (orange).
             NOP
             NOP
             NOP
             NOP
             NOP
             NOP
             NOP
             NOP
             NOP
             DECFSZ  0x23      , F
             GOTO    Label_0008
 Label_0007  MOVLW   0x03
             XORWF   GPIO      , F      ;Output OFF: GP1, 
             MOVLW   0xD8               ;Output ON: GP0,
             MOVWF   0x26                   
 Label_0009  NOP                        ;Output time(dwell):(3NOP)6uS x 0x26 registers ((D8=216)x6=1296uS)
             NOP
             NOP
             DECFSZ  0x26      , F 
             GOTO    Label_0009
             MOVLW   0x03               ;Output ON: GP1, 
             XORWF   GPIO      , F      ;Output OFF: GP0,
 Label_0012  CLRF    0x24
             CLRF    0x27               ; TMR0 overflow registers(0x27) clear
             MOVLW   0xA0
             MOVWF   INTCON             ;interrupt Initialization 
             GOTO    Label_0003
             GOTO    Label_0001
 
             ORG     0x2007
             DATA    33C4               ;Config Bytes
 
             END