pic18c658 или pic18f6585
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено DSN 06 августа 2004 г. 10:32
В ответ на: 2 DSN: CAN init отправлено Hol` 06 августа 2004 г. 09:25

вот еще для 18f258
но у него надо устанавливать направление ног интерфейса, иначе не заработает кристал. Возможно у вас та же проблема, в PDF написано что вкл интерфейс и все должно работать, а на деле надо TRIS регистр правильно установить.


;==_CAN_==
; movlw 0x02 ;(7..0)стандартное старший.
movlw canadrb3 ;
movwf canadr3 ;
; movlw B'01000000' ;(7..5)стандартное младший.
movlw canadrb2 ;
movwf canadr2 ;
; movlw 0x00 ;
movlw canadrb1 ;
movwf canadr1 ;
; movlw 0x00 ;
movlw canadrb0 ;
movwf canadr0 ;
;ставим направления ног
bcf TRISB,CANTX ;
bsf TRISB,CANRX ;
InitCAN:
movlb 0x0f ;банк 15.
movlw B'10000000' ;режим инициализации.
movwf CANCON,1 ;регистр управления и статуса.
btfss CANSTAT,OPMODE2,1
bra InitCAN ;

clrf COMSTAT,1 ;очистака рег статуса.
;передатчик.
clrf TXB0CON,1 ;
clrf TXB1CON,1 ;
clrf TXB2CON,1 ;
clrf TXERRCNT,1 ;сброс ошибок передатчика.
;приемник.
movlw B'00000100' ;
movwf RXB0CON,1 ;
movlw B'00000000' ;
movwf RXB1CON,1 ;
clrf RXERRCNT,1 ;сброс ошибок приемника.
;Фильтры.
movlw 0x00 ;
movwf RXF0SIDH,1 ;
movwf RXF1SIDH,1 ;
movwf RXF2SIDH,1 ;
movwf RXF3SIDH,1 ;
movwf RXF4SIDH,1 ;
movwf RXF5SIDH,1 ;
movlw 0x00 ;
movwf RXF0SIDL,1 ;
movwf RXF1SIDL,1 ;
movwf RXF2SIDL,1 ;
movwf RXF3SIDL,1 ;
movwf RXF4SIDL,1 ;
movwf RXF5SIDL,1 ;
movlw 0x00 ;
movwf RXF0EIDH,1 ;
movwf RXF1EIDH,1 ;
movwf RXF2EIDH,1 ;
movwf RXF3EIDH,1 ;
movwf RXF4EIDH,1 ;
movwf RXF5EIDH,1 ;
movlw 0x00 ;
movwf RXF0EIDL,1 ;
movwf RXF1EIDL,1 ;
movwf RXF2EIDL,1 ;
movwf RXF3EIDL,1 ;
movwf RXF4EIDL,1 ;
movwf RXF5EIDL,1 ;
;маски.
movlw 0x00 ;
movwf RXM0SIDH,1 ;
movwf RXM1SIDH,1 ;
movlw 0x00 ;
movwf RXM0SIDL,1 ;
movwf RXM1SIDL,1 ;
movlw 0x00 ;
movwf RXM0EIDH,1 ;
movwf RXM1EIDH,1 ;
movlw 0x00 ;
movwf RXM0EIDL,1 ;
movwf RXM1EIDL,1 ;

;TQ=x16 настройка скорости обмена.
movlw 0x0A ;TQsinhro=1 / BRG = 10x2/ 102400bod
movwf BRGCON1,1 ;
movlw B'00100100' ;seg1=5TQ / timeseg = 5TQ
movwf BRGCON2,1 ;
movlw B'01000100' ;seg2=5TQ
movwf BRGCON3,1 ;

movlw B'00110000' ;
movwf CIOCON,1 ;

; bcf CANCON,REQOP2,1;Normal Work.
clrf CANCON,1 ;

movlb 0x00 ;банк 0.
;перрывания
clrf PIR3 ;Clear Flags
movlw B'00100011' ;ERR + RX1 + RX0
; movlw B'00000011' ;RX1 + RX0
movwf PIE3 ;Set Interrupt
clrf IPR3 ;Low Priority



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru