Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 09.05.2015, 08:59  
cxem2
Прохожий
 
Регистрация: 06.02.2010
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
cxem2 на пути к лучшему
По умолчанию ELM-327(Firmware)

АДАПТЕР K+CAN COMMANDER
Прошу для понимания(новичком) прокомментировать строки.
Хочу убрать CAN и вставит K-line на скорости 10400бод.
no CAN to K-line

Нажмите, чтобы открыть спойлер
Код:
INCLUDE ‹P18F2480.INC›
; Reset Vector
  ORG 0x000000
ResV       bra     START

; High Priority IRQ Vector   
  ORG 0x000008
HPIV       bra     HPIVEC

; Low Priority IRQ Vector
  ORG 0x000018

LPIVEC     movff   STATUS , 0x0050 ; 
           movff   WREG , 0x004F
           movff   FSR1L , 0x0051
           movff   FSR1H , 0x0052
           btfss   0x9D , 4 , ACCESS ; PIE1,TXIE 
           bra     LPIV1
           btfsc   0x9E , 4 , ACCESS ; PIR1,TXIF 
           rcall   USARTTX
LPIV1      btfss   0xF2 , 5 , ACCESS ; INTCON, TMR0IE
           bra     LPIV2
           btfsc   0xF2 , 2 , ACCESS ; INTCON, TMR0IF 
           rcall   TIMEP
LPIV2      btfsc   0xA4 , 1 , ACCESS ; PIR3, RXB1IF
           rcall   CANRX1
           btfsc   0xA4 , 0 , ACCESS ; PIR3, RXB0IF
           rcall   CANRX0
           movff   0x0051 , FSR1L
           movff   0x0052 , FSR1H
           movff   0x004F , WREG
           movff   0x0050 , STATUS
           retfie  0


USARTTX    lfsr    0x1 , 0x000
           movf    0x46 , W , ACCESS ;
           movff   PLUSW1 , TXREG
           incf    0x46 , F , ACCESS ;
           decfsz  0x45 , F , ACCESS ;
           return  0
           bcf     0x9D , 4 , ACCESS ; PIE1, TXIE
           return  0


TIMEP      bcf     0xF2 , 5 , ACCESS ; INTCON,TMR0IE
           btfss   0xAB , 1 , ACCESS ; RCSTA,OERR
           bra     TIMP1
           bcf     0xAB , 4 , ACCESS ; RCSTA,CREN
           bsf     0xAB , 4 , ACCESS ; RCSTA,CREN
           clrf    0x44     , ACCESS ; 
TIMP1      bcf     0x81 , 4 , ACCESS ; PORTB, BIT4 (LED-RS232-CMD ON)
           bsf     0x4E , 0 , ACCESS ; 
           bcf     0xAB , 4 , ACCESS ; RCSTA,CREN
           return  0


CANRX1     movff   CANCON , 0x0055
           movff   0x0047 , FSR1H
           movff   0x0048 , FSR1L
           bsf     0x6F , 1 , ACCESS ; CANCON, WIN0
           bcf     0x6F , 2 , ACCESS ; CANCON, WIN1
           bsf     0x6F , 3 , ACCESS ; CANCON, WIN2 [RecBuf1]
           movff   RXB0SIDH , POSTINC1
           movff   RXB0SIDL , POSTINC1
           movff   RXB0EIDH , POSTINC1
           movff   RXB0EIDL , POSTINC1
           movff   RXB0DLC , POSTINC1
           movff   RXB0D0 , POSTINC1
           movff   RXB0D1 , POSTINC1
           movff   RXB0D2 , POSTINC1
           movff   RXB0D3 , POSTINC1
           movff   RXB0D4 , POSTINC1
           movff   RXB0D5 , POSTINC1
           movff   RXB0D6 , POSTINC1
           movff   RXB0D7 , POSTINC1
           movlw   0x0D
           addwf   0x48 , F , ACCESS ;
           clrf    0xE8     , ACCESS ; WREG
           addwfc  0x47 , F , ACCESS ;
           movlw   0x02
           cpfseq  0x47     , ACCESS ;
           bra     CRX1              ; Верхняя граница буфера HB?
           movlw   0xF3
           cpfsgt  0x48     , ACCESS
           bra     CRX1              ; Верхняя граница буфера LB?
           clrf    0x47     , ACCESS
           movlw   0x60
           movwf   0x48     , ACCESS
CRX1       bcf     0xA4 , 1 , ACCESS ; PIR3,RXB1IF
           bcf     0x60 , 7 , ACCESS ; RXB0CON, RXFUL
           bcf     0x81 , 6 , ACCESS ; PORTB, BIT6 (LED-CANRX ON)
           movff   0x0055 , CANCON
           return  0


CANRX0     movff   CANCON , 0x0055
           movff   0x0047 , FSR1H
           movff   0x0048 , FSR1L
           movlw   0xF1
           andwf   0x6F , F , ACCESS ; CANCON ; [RecBuf0]
           movff   RXB0SIDH , POSTINC1
           movff   RXB0SIDL , POSTINC1
           movff   RXB0EIDH , POSTINC1
           movff   RXB0EIDL , POSTINC1
           movff   RXB0DLC , POSTINC1
           movff   RXB0D0 , POSTINC1
           movff   RXB0D1 , POSTINC1
           movff   RXB0D2 , POSTINC1
           movff   RXB0D3 , POSTINC1
           movff   RXB0D4 , POSTINC1
           movff   RXB0D5 , POSTINC1
           movff   RXB0D6 , POSTINC1
           movff   RXB0D7 , POSTINC1
           movlw   0x0D
           addwf   0x48 , F , ACCESS ; 
           clrf    0xE8     , ACCESS ; WREG
           addwfc  0x47 , F , ACCESS ; 
           movlw   0x02
           cpfseq  0x47     , ACCESS
           bra     CRX2              ; Верхняя граница буфера HB?
           movlw   0xF3
           cpfsgt  0x48     , ACCESS
           bra     CRX2              ; Верхняя граница буфера LB?
           clrf    0x47     , ACCESS
           movlw   0x60
           movwf   0x48     , ACCESS
CRX2       bcf     0xA4 , 0 , ACCESS ; PIR3,RXB0IF
           bcf     0x60 , 7 , ACCESS ; RXB0CON, RXFUL
           bcf     0x81 , 6 , ACCESS ; PORTB, BIT6 (LED-CANRX ON)
           movff   0x0055 , CANCON
           return  0


HPIVEC     movff   FSR1L , 0x0053 ; High Priority IRQ
           movff   FSR1H , 0x0054
           clrf    0xD6     , ACCESS ; TMR0L
           movf    0x44 , W , ACCESS ; 
           andlw   0x7F
           bnz     HPIV1
           bsf     0x81 , 4 , ACCESS ; PORTB, BIT4 (LED-RS232-CMD OFF)
           bcf     0xF2 , 2 , ACCESS ; INTCON, TMR0IF
           bsf     0xF2 , 5 , ACCESS ; INTCON, TMR0IE
HPIV1      lfsr    0x1 , 0x022
           movff   RCREG , PLUSW1
           incf    0x44 , F , ACCESS
           movlw   0x22
           cpfslt  0x44     , ACCESS ; 
           bcf     0xAB , 4 , ACCESS ; RCSTA, CREN
           movff   0x0053 , FSR1L
           movff   0x0054 , FSR1H
           retfie  1

; Начало работы МК
START      bsf     0x81 , 2 , ACCESS ; PORTB, BIT2 (TX-CAN=1)
           bsf     0x81 , 4 , ACCESS ; PORTB, BIT4 (LED-RS232-CMD OFF)
           bsf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK OFF)
           bsf     0x81 , 6 , ACCESS ; PORTB, BIT6 (LED-CAN-RX OFF)
           bsf     0x81 , 7 , ACCESS ; PORTB, BIT7 (LED-CAN-TX OFF)
           movlw   0x0B
           movwf   0x93     , ACCESS ; TRISB (OOOOIOII)
           movlw   0x24
           movwf   0xAC     , ACCESS ; TXSTA, [TXEN,BRGH]
           movlw   0x90
           movwf   0xAB     , ACCESS ; RCSTA, [SPEN,CREN]
           movlw   0x02
           movwf   0xAF     , ACCESS ; SPBRG, [833333kps]
           bcf     0x9F , 4 , ACCESS ; IPR1, TXIP
           bsf     0x9D , 5 , ACCESS ; PIE1, RCIE
           bsf     0x6F , 7 , ACCESS ; CANCON, REQOP2
STRT1      clrwdt 
           btfss   0x6E , 7 , ACCESS ; CANSTAT, OPMODE2
           bra     STRT1
           bcf     0x60 , 6 , ACCESS ; RXB0CON, RXM1
           bcf     0x60 , 5 , ACCESS ; RXB0CON, RXM0
           bsf     0x60 , 2 , ACCESS ; RXB0CON, RXB0DBEN
           lfsr    0x2 , RXB1CON
           bcf     0xDF , 6 , ACCESS ; INDF2, RXM1
           bcf     0xDF , 5 , ACCESS ; INDF2, RXM0
           lfsr    0x2 , RXF0SIDH
STRT2      setf    0xDE     , ACCESS ; POSTINC2 [RXF0=FFFFFFFF]
           btfss   0xD9 , 5 , ACCESS ; FSR2L
           bra     STRT2
           movlw   0x01
           movwf   0x70     , ACCESS ; BRGCON1
           movlw   0xFA
           movwf   0x71     , ACCESS ; BRGCON2
           movlw   0x07
           movwf   0x72     , ACCESS ; BRGCON3; [500k]
           bsf     0x73 , 5 , ACCESS ; CIOCON, ENDRHI
           bcf     0xA4 , 1 , ACCESS ; PIR3, RXB1IF
           bcf     0xA4 , 0 , ACCESS ; PIR3, RXB0IF
           bsf     0xA3 , 1 , ACCESS ; PIE3, RXB1IE
           bsf     0xA3 , 0 , ACCESS ; PIE3, RXB0IE
           bcf     0xA5 , 0 , ACCESS ; IPR3, RXB0IP
           bcf     0xA5 , 1 , ACCESS ; IPR3, RXB1IP
           movlw   0xC2
           movwf   0xD5     , ACCESS ; T0CON, [TMR0ON,T08BIT,1:8]
           bcf     0xF1 , 2 , ACCESS ; INTCON2, TMR0IP
           lfsr    0x0 , 0x000
STRT3      clrf    0xEE     , ACCESS ; POSTINC0 [0-255 = 0x0]
           btfss   0xEA , 0 , ACCESS ; FSR0H
           bra     STRT3
           clrf    0x47     , ACCESS ; 
           clrf    0x49     , ACCESS ; 
           movlw   0x60
           movwf   0x48     , ACCESS ; 
           movwf   0x4A     , ACCESS
           bsf     0xD0 , 7 , ACCESS ; RCON, IPEN [IRQ Priority EN]
           movlw   0xC0
           movwf   0xF2     , ACCESS ; INTCON, [GIE, PEIE]
           bcf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK ON)
           clrf    0x6F     , ACCESS ; CANCON [ВКЛ CAN]
STRT4      clrwdt 
           movf    0x6E , W , ACCESS ; CANSTAT []
           andlw   0xE0
           btfss   0xD8 , 2 , ACCESS ; STATUS, Z
           bra     STRT4             ; Проверка включения CAN
MAIN       clrwdt 
           btfsc   0x4E , 0 , ACCESS ; 
           rcall   RXUSART           ; Наличие приема команд по USART
           btfsc   0xAC , 1 , ACCESS ; TXSTA, TRMT
           bsf     0x81 , 7 , ACCESS ; PORTB, BIT7 (LED-CAN-TX OFF)
           movf    0x49 , W , ACCESS ; Проверяем расхождение
           cpfseq  0x47     , ACCESS ; индексов цикличного буфера
           bra     MAIN1
           movf    0x4A , W , ACCESS ;
           cpfseq  0x48     , ACCESS ;
           bra     MAIN1
           bra     MAIN
MAIN1      rcall   TXUSART           ; Передача в USART CAN-пакета из ЦБ
           bra     MAIN              ; Основной цикл программы

; Формирование CAN пакета из буфера для USART-порта
TXUSART    movff   0x0049 , FSR0H
           movff   0x004A , FSR0L
TXUS1      clrwdt 
           btfsc   0x9D , 4 , ACCESS ; PIE1, TXIE
           bra     TXUS1             ; ждем окончания передачи CAN
           movlw   0x70
           movwf   0x00     , ACCESS
           movlw   0x04
           movwf   0x01     , ACCESS
           movff   POSTINC0 , 0x0002
           movff   POSTINC0 , 0x0003
           movff   POSTINC0 , 0x0004
           movff   POSTINC0 , 0x0005
           lfsr    0x2 , 0x003
           rcall   CHNG1B1
           btfss   0xEF , 6 , ACCESS ; INDF0 (Здесь Byte1 CAN-адреса)
           bra     TXUS2
           bsf     0x03 , 7 , ACCESS ; Ставим RTR если он был
           bra     TXUS4
TXUS2      movf    0xEE , W , ACCESS ; POSTINC0
           bz      TXUS4
           addwf   0x01 , F , ACCESS
           movwf   0x4B     , ACCESS
           lfsr    0x2 , 0x006
TXUS3      movff   POSTINC0 , POSTINC2 ; Копируем CAN DATA BYTES
           decfsz  0x4B , F , ACCESS
           bra     TXUS3
TXUS4      movf    0x01 , W , ACCESS
           addlw   0x02
           movwf   0x45     , ACCESS
           clrf    0x46     , ACCESS
           lfsr    0x1 , 0x000
           bsf     0x9D , 4 , ACCESS ; PIE1, TXIE
           bsf     0x81 , 6 , ACCESS ; PORTB, BIT6 (LED-CANRX OFF)
           movlw   0x0D
           addwf   0x4A , F , ACCESS ; 
           clrf    0xE8     , ACCESS ; WREG
           addwfc  0x49 , F , ACCESS ; Прибавляем индекс RX из CAN буф
           movlw   0x02              ; 
           cpfseq  0x49     , ACCESS ; Верхняя граница буфера HB?
           return  0
           movlw   0xF3
           cpfsgt  0x4A     , ACCESS ; Верхняя граница буфера LB?
           return  0
           clrf    0x49     , ACCESS
           movlw   0x60
           movwf   0x4A     , ACCESS
           return  0

; Разбор приема с USART порта
RXUSART    movf    0x23 , W , ACCESS ; проверка на кол-во байт приема
           addlw   0x02
           cpfseq  0x44     , ACCESS
           bra     RXUS32
RXUS1      clrwdt 
           btfss   0xAC , 1 , ACCESS ; TXSTA, TRMT
           bra     RXUS1
           movlw   0xC0              ; Проверка на команду C0
           cpfseq  0x22     , ACCESS
           bra     RXUS4
           tstfsz  0x23     , ACCESS
           bra     RXUS32
           bsf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK OFF)
           bsf     0x6F , 7 , ACCESS
RXUS2      clrwdt 
           btfss   0x6E , 7 , ACCESS
           bra     RXUS2
           movlw   0x01
           movwf   0x70     , ACCESS
           movlw   0xFA
           movwf   0x71     , ACCESS
           movlw   0x07
           movwf   0x72     , ACCESS
           clrf    0x6F     , ACCESS
RXUS3      clrwdt 
           movf    0x6E , W , ACCESS
           andlw   0xE0
           btfss   0xD8 , 2 , ACCESS
           bra     RXUS3
           movlw   0xC0
           bra     RXUS31
RXUS4      movlw   0x51              ; Проверка на команду 51
           cpfseq  0x22     , ACCESS
           bra     RXUS7
           tstfsz  0x23     , ACCESS
           bra     RXUS32
           bsf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK OFF)
           bsf     0x6F , 7 , ACCESS
RXUS5      clrwdt 
           btfss   0x6E , 7 , ACCESS
           bra     RXUS5
           movlw   0x09
           movwf   0x70     , ACCESS
           movlw   0xFA
           movwf   0x71     , ACCESS
           movlw   0x07
           movwf   0x72     , ACCESS
           clrf    0x6F     , ACCESS
RXUS6      clrwdt 
           movf    0x6E , W , ACCESS
           andlw   0xE0
           btfss   0xD8 , 2 , ACCESS
           bra     RXUS6
           movlw   0x51
           bra     RXUS31
RXUS7      movlw   0x52              ; Проверка на команду 52
           cpfseq  0x22     , ACCESS
           bra     RXUS12
           tstfsz  0x23     , ACCESS
           bra     RXUS32
           bsf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK OFF)
           bsf     0x6F , 7 , ACCESS ; CANCON, CFG
RXUS8      clrwdt 
           btfss   0x6E , 7 , ACCESS
           bra     RXUS8
           movlw   0x52
           movwf   0x00     , ACCESS
           movlw   0x20
           movwf   0x01     , ACCESS
           addlw   0x02
           movwf   0x45     , ACCESS
           lfsr    0x0 , 0x002
           lfsr    0x2 , RXF0SIDH
RXUS9      movff   POSTINC2 , POSTINC0
           btfss   0xD9 , 5 , ACCESS  ; FSR2L, BIT5
           bra     RXUS9
           lfsr    0x2 , 0x003
           movlw   0x08
           movwf   0x4B     , ACCESS
RXUS10     rcall   CHNG1B1
           movlw   0x04
           addwf   0xD9 , F , ACCESS
           decfsz  0x4B , F , ACCESS
           bra     RXUS10
           clrf    0x46     , ACCESS
           lfsr    0x1 , 0x000
           bsf     0x9D , 4 , ACCESS
           clrf    0x6F     , ACCESS
RXUS11     clrwdt 
           movf    0x6E , W , ACCESS
           andlw   0xE0
           btfss   0xD8 , 2 , ACCESS
           bra     RXUS11
           bcf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK ON)
           bra     RXUS32
RXUS12     movlw   0x53              ; Проверка на команду 53
           cpfseq  0x22     , ACCESS
           bra     RXUS17
           movlw   0x20
           cpfseq  0x23     , ACCESS
           bra     RXUS32
           bsf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK OFF)
           bsf     0x6F , 7 , ACCESS
RXUS13     clrwdt 
           btfss   0x6E , 7 , ACCESS
           bra     RXUS13
           lfsr    0x0 , 0x025
           movlw   0x08
           movwf   0x4B     , ACCESS
RXUS14     rcall   CNHG2B1
           movlw   0x04
           addwf   0xE9 , F , ACCESS
           decfsz  0x4B , F , ACCESS
           bra     RXUS14
           lfsr    0x0 , RXF0SIDH
           lfsr    0x2 , 0x024
RXUS15     movff   POSTINC2 , POSTINC0
           btfss   0xE9 , 5 , ACCESS
           bra     RXUS15
           clrf    0x6F     , ACCESS
RXUS16     clrwdt 
           movf    0x6E , W , ACCESS
           andlw   0xE0
           btfss   0xD8 , 2 , ACCESS
           bra     RXUS16
           movlw   0x53
           rcall   RXUS31
RXUS17     movlw   0x54              ; Проверка на команду 54
           cpfseq  0x22     , ACCESS
           bra     RXUS18
           tstfsz  0x23     , ACCESS
           bra     RXUS32
           lfsr    0x2 , TXB0CON
           bcf     0x60 , 3 , ACCESS
           movlw   0x54
           movwf   0x00     , ACCESS
           movlw   0x02
           movwf   0x01     , ACCESS
           movlw   0x04
           movwf   0x45     , ACCESS
           movff   INDF2 , 0x0002
           movff   COMSTAT , 0x0003
           clrf    0x46     , ACCESS
           lfsr    0x1 , 0x000
           bsf     0x9D , 4 , ACCESS
           bra     RXUS32
RXUS18     movlw   0x55              ; Проверка на команду 55
           cpfseq  0x22     , ACCESS
           bra     RXUS21
           movlw   0x03
           cpfseq  0x23     , ACCESS
           bra     RXUS32
           bsf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK OFF)
           bsf     0x6F , 7 , ACCESS
RXUS19     clrwdt 
           btfss   0x6E , 7 , ACCESS
           bra     RXUS19
           movf    0x24 , W , ACCESS
           movwf   0x70     , ACCESS
           movf    0x25 , W , ACCESS
           movwf   0x71     , ACCESS
           movf    0x26 , W , ACCESS
           movwf   0x72     , ACCESS
           clrf    0x6F     , ACCESS
RXUS20     clrwdt 
           movf    0x6E , W , ACCESS
           andlw   0xE0
           btfss   0xD8 , 2 , ACCESS
           bra     RXUS20
           movlw   0x55
           bra     RXUS31
RXUS21     movlw   0x56              ; Проверка на команду 56
           cpfseq  0x22     , ACCESS
           bra     RXUS26
           movlw   0x01
           cpfseq  0x23     , ACCESS
           bra     RXUS32
           movlw   0x04
           cpfseq  0x24     , ACCESS
           bra     RXUS22
           bra     RXUS25
RXUS22     bsf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK OFF)
           bsf     0x6F , 7 , ACCESS
RXUS23     clrwdt 
           btfss   0x6E , 7 , ACCESS
           bra     RXUS23
           movlw   0x09
           movwf   0x70     , ACCESS
           movlw   0xFA
           movwf   0x71     , ACCESS
           movlw   0x07
           movwf   0x72     , ACCESS
           clrf    0x6F     , ACCESS
RXUS24     clrwdt 
           movf    0x6E , W , ACCESS
           andlw   0xE0
           btfss   0xD8 , 2 , ACCESS
           bra     RXUS24
RXUS25     movlw   0x56
           bra     RXUS31
RXUS26     movlw   0x60              ; Проверка на команду 60
           cpfseq  0x22     , ACCESS
           bra     RXUS32
           movlw   0x03
           cpfsgt  0x23     , ACCESS
           bra     RXUS30
           movlw   0x0D
           cpfslt  0x23     , ACCESS
           bra     RXUS30
           bcf     0x81 , 7 , ACCESS ; PORTB, BIT7 (LED-CAN-TX ON)
           clrwdt 
           movlw   0x08
RXUS27     movwf   0x6F     , ACCESS
           btfsc   0x60 , 3 , ACCESS
           bra     RXUS27
           clrf    0x65     , ACCESS
           btfsc   0x25 , 7 , ACCESS
           bsf     0x65 , 6 , ACCESS
           lfsr    0x0 , 0x025
           rcall   CNHG2B1
           movff   0x0024 , RXB0SIDH
           movff   0x0025 , RXB0SIDL
           movff   0x0026 , RXB0EIDH
           movff   0x0027 , RXB0EIDL
           movlw   0x04
           subwf   0x23 , W , ACCESS
           bz      RXUS29
           movwf   0x4B     , ACCESS
           iorwf   0x65 , F , ACCESS
           lfsr    0x0 , TXB0D0
           lfsr    0x2 , 0x028
RXUS28     movff   POSTINC2 , POSTINC0
           decfsz  0x4B , F , ACCESS
           bra     RXUS28
RXUS29     bsf     0x60 , 3 , ACCESS
           clrf    0x6F     , ACCESS
           movlw   0x60
           bra     RXUS31
RXUS30     movlw   0x6F
           bra     RXUS31
RXUS31     movwf   0xAD     , ACCESS
           clrf    0x00     , ACCESS
           movlw   0x01
           movwf   0x45     , ACCESS
           bcf     0x81 , 5 , ACCESS ; PORTB, BIT5 (LED-WORK ON)
           bsf     0x81 , 4 , ACCESS ; PORTB, BIT4 (LED-RS232-CMD OFF)
           clrf    0x46     , ACCESS
           lfsr    0x1 , 0x000
           bsf     0x9D , 4 , ACCESS
RXUS32     clrf    0x44     , ACCESS
           bsf     0xAB , 4 , ACCESS
           bcf     0x4E , 0 , ACCESS
           return  0

; Преобразование Byte1 CAN-адреса в формат адаптера
CHNG1B1    movf    0xDF , W , ACCESS ; INDF2
           andlw   0x03
           movwf   0x4C     , ACCESS
           movlw   0xE0
           andwf   0xDF , F , ACCESS ; INDF2
           rrncf   0xDF , F , ACCESS ; INDF2
           rrncf   0xDF , F , ACCESS ; INDF2
           rrncf   0xDF , F , ACCESS ; INDF2
           movf    0x4C , W , ACCESS
           iorwf   0xDF , F , ACCESS ; INDF2
           return  0

; Преобразование Byte1 из формата адаптера в CAN-адрес
CNHG2B1    movf    0xEF , W , ACCESS
           andlw   0x40
           movwf   0x4D     , ACCESS
           rrncf   0x4D , F , ACCESS
           rrncf   0x4D , F , ACCESS
           rrncf   0x4D , F , ACCESS
           movf    0xEF , W , ACCESS
           andlw   0x03
           movwf   0x4C     , ACCESS
           rlncf   0xEF , F , ACCESS
           rlncf   0xEF , F , ACCESS
           rlncf   0xEF , F , ACCESS
           movlw   0xE0
           andwf   0xEF , F , ACCESS
           movf    0x4C , W , ACCESS
           iorwf   0xEF , F , ACCESS
           movf    0x4D , W , ACCESS
           iorwf   0xEF , F , ACCESS
           return  0

     ORG 0x300000     ; CONFIG

       Data   0x2600  ; CONFIG1H,CONFIG1L : FOSC=HS+PLL OSCSEN=DISABLE   
       Data   0x050E  ; CONFIG2H,CONFIG2L : WDTPS=1:4 WDT=EN Vbor=4,3V BOREN=Hardware PWRT=ON 
       Data   0x0000  ; CONFIG3H,CONFIG3L : MCLRE=OFF LPT1OSC=OFF PBADEN=OFF
       Data   0x0081  ; CONFIG4H,CONFIG4L : DEBUG=OFF XINST=LEGASY BBSIZ=OFF LVP=OFF STVREN=ON
       Data   0xC00F  ; CONFIG5H,CONFIG5L : CODE PROTECT=NO
       Data   0xE00F  ; CONFIG6H,CONFIG6L : CODE PROTECT=NO
       Data   0x400F  ; CONFIG7H,CONFIG7L : EBTRB=Not PRTCK CODE PROTECT=NO

 end ;
Миниатюры:
Нажмите на изображение для увеличения
Название: no CAN to K-line.GIF
Просмотров: 159
Размер:	42.5 Кб
ID:	79181  
Реклама:

Последний раз редактировалось cxem2; 09.05.2015 в 09:06.
cxem2 вне форума  
Непрочитано 09.05.2015, 15:18  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,505
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: ELM-327(Firmware)

Сообщение от cxem2 Посмотреть сообщение
прокомментировать строки.
Все строки комментировать????
http://ww1.microchip.com/downloads/e...Doc/39637d.pdf даташит в помощь, там описание модуля CAN и почти в конце документа - список инструкций.
NewWriter вне форума  
Непрочитано 09.05.2015, 15:50  
Albert_V
Гражданин KAZUS.RU
 
Регистрация: 13.04.2012
Адрес: Королёв МО
Сообщений: 786
Сказал спасибо: 621
Сказали Спасибо 364 раз(а) в 200 сообщении(ях)
Albert_V на пути к лучшему
По умолчанию Re: ELM-327(Firmware)

Выложить реассемблированный код и просить прокомментировать строки - это уже издевательство какое-то
Albert_V вне форума  
Непрочитано 09.05.2015, 19:32  
cxem2
Прохожий
 
Регистрация: 06.02.2010
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
cxem2 на пути к лучшему
По умолчанию Re: ELM-327(Firmware)

NewWriter
Оформить, как учебное пособие.
Чтобы народ мог самостоятельно писать Firmware для этого:
Bluetooth Elm-327(Железо)

Моих знаний хватило только поморгать светодиодами:

Код:
            list         p=18F2480 ; Используется микроконтроллер PIC18F2480.
            #include   p18F2480.inc ; Подключение INC-файла PIC18F2480.
;*************************************************  ************************************
; Конфигурирование.
;*************************************************  **************************************
            CONFIG      OSC=XT       ; запустить генератор в режиме XT 
            CONFIG      FCMEN = OFF  ; Отказоустойчивый Монитор Генератора
            CONFIG      IESO = OFF   ; режим переключения генераторов
            CONFIG      PWRT = OFF   ; таймер задержки включения
            CONFIG      BOREN = OFF  ; функция сброса по понижению питания
            CONFIG      BORV = 3     ; порог активации сброса 
            CONFIG      WDT = OFF    ; сторожевой таймер
            CONFIG      WDTPS = 32768; предделитель таймера настроен
            CONFIG      MCLRE = OFF  ; Выключение MCLR, вывод RE3 работает
            CONFIG      LPT1OSC = OFF; Низким энергопотреблением таймер 1 осциллятор включить бит (Timer1 для более высокой мощности операции)
            CONFIG      PBADEN = OFF ; порт PORTB скофигурирован при подаче питания как цифровой
            CONFIG      DEBUG = OFF  ; режим внутреннего отладчика
            CONFIG      XINST = OFF  ; поддержка расширенных команд отключена
            CONFIG      BBSIZ = 1024 ; Размер блока начальной загрузки
            CONFIG      LVP = OFF     ; Режим низковольтного программирования
            CONFIG      STVREN = ON   ; сброс по переполнению стека
            CONFIG      CP0 = OFF     ; (000640-003FFFh)защита на всю память
            CONFIG      CP1 = OFF     ; (004000-007FFFh)защита по записи на всю память
            CONFIG      CPB = OFF     ; Boot block (000000-0007FFh)
            CONFIG      CPD = OFF     ; Data EEPROM
            CONFIG      WRT0 = OFF    ; табличное чтение памяти программ
            CONFIG      WRT1 = OFF    ; (004000-007FFFh)
            CONFIG      WRTB = OFF    ; Блок загрузки (000000-0007FFh)
            CONFIG      WRTC = OFF    ; Запись в Регистр конфигурации
            CONFIG      WRTD = ON     ; Запись в EEPROM
            CONFIG      EBTR0 = OFF   ; (000640-003FFFh) табличное чтение
            CONFIG      EBTR1 = OFF   ; (004000-007FFFh) табличное чтение
            CONFIG      EBTRB = OFF   ; Boot Block (000000-0007FFh) табличное чтение
;************************************
; Присвоение
;************************************
            #define  Noga_28  LATB,7 ;
            #define  Noga_27  LATB,6 ;
            #define  Noga_26  LATB,5 ;
            #define  Noga_25  LATB,4 ;
            
;************************************
; Регистры общ. назначения
;************************************
            cblock             20h ; резервируем место в ОЗ
            Reg_1                  ;      
            Reg_2                  ;
            Reg_3                  ;
            endc                   ;
;*************************************************  ******************
            org                  0 ;
            goto             START ;
;************************************
; инициализация
;************************************
START       movlw       b'00001111'; Значение инициализации направления данных     
            movwf            TRISB ; Установить RB‹7:4› выходами, RB‹3:0› входами

           ;CLRF	            PORTB	;	Инициализация PORTB с очисткой выходной защелки данных
           ;CLRF	            LATB	 ;	Альтернативный метод очистки выходной защелки данных
           ;MOVLW	           0x0F	 ;	Значение инициализации направления данных
           ;MOVWF	           TRISB	;	Установить RB‹3:0› входами, RB‹7:4› выходами


;=================================================  ==================
; Начало программы.
;=================================================  ==================
Povtor      bsf              Noga_28 ; включаем светодиод, Установка бита в f
            call           Pause_1 ; ждем одну секунду
            bsf              Noga_27 ; включаем светодиод, Установка бита в f
            call           Pause_1 ; ждем одну секунду
            bsf              Noga_26 ; включаем светодиод, Установка бита в f
            call           Pause_1 ; ждем одну секунду
            bsf              Noga_25 ; включаем светодиод, Установка бита в f
            call           Pause_1 ; ждем одну секунду
            bcf              Noga_28 ; выключаем светодиод, Сброс бита в f
            call           Pause_2 ; ждем 0,5 секунд
            bcf              Noga_27 ; выключаем светодиод, Сброс бита в f
            call           Pause_2 ; ждем 0,5 секунд
            bcf              Noga_26 ; выключаем светодиод, Сброс бита в f
            call           Pause_2 ; ждем 0,5 секунд
            bcf              Noga_25 ; выключаем светодиод, Сброс бита в f
            call           Pause_2 ; ждем 0,5 секунд
            goto            Povtor ; зацикливаем программу.
;************************************
; Пауза 1 секунда
;************************************
Pause_1     movlw       .173     
            movwf       Reg_1   
            movlw       .19
            movwf       Reg_2
            movlw       .6
            movwf       Reg_3
            decfsz      Reg_1
            bra         $-2
            decfsz      Reg_2
            bra         $-6
            decfsz      Reg_3
            bra         $-.10
            return
;*************************************
; Пауза 0,5 секунда
;************************************
Pause_2       movlw       .85
            movwf       Reg_1
            movlw       .138
            movwf       Reg_2
            movlw       .3
            movwf       Reg_3
wr          decfsz      Reg_1, F
            goto        wr
            decfsz      Reg_2, F
            goto        wr
            decfsz      Reg_3, F
            goto        wr 
            
            return
;*************************************
            end
cxem2 вне форума  
Непрочитано 09.05.2015, 19:44  
kreking
Почётный гражданин KAZUS.RU
 
Регистрация: 04.02.2005
Сообщений: 2,228
Сказал спасибо: 1,020
Сказали Спасибо 823 раз(а) в 606 сообщении(ях)
kreking на пути к лучшему
По умолчанию Re: ELM-327(Firmware)

Сообщение от cxem2 Посмотреть сообщение
...Прошу для понимания(новичком) прокомментировать строки...
Книги по программированию микроконтроллеров и в разделе "Книги".

Программирование на Ассемблере для PIC
Цитата:
...Так или иначе, представленной базовой информации достаточно, чтобы дальше
самостоятельно разобраться в вопросах программирования тех или иных приложений. И на
всасывание этой информации у вас уйдёт не меньше полугода. К этому моменту вы поймете,
что это так и есть...
Микроконтроллеры для ленивых, или краткое введение в программирование на ассемблере под PIC
kreking вне форума  
Непрочитано 09.05.2015, 20:04  
Albert_V
Гражданин KAZUS.RU
 
Регистрация: 13.04.2012
Адрес: Королёв МО
Сообщений: 786
Сказал спасибо: 621
Сказали Спасибо 364 раз(а) в 200 сообщении(ях)
Albert_V на пути к лучшему
По умолчанию Re: ELM-327(Firmware)

Сообщение от cxem2
Оформить, как учебное пособие.
Возможно, вы ошиблись веткой форума.
Albert_V вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 05:38.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot