|
Автор: Юрий (194.44.2.---)
Дата: 14/12/2004 20:15
Кто работал SPI контроллера + MCP41010(SPI Цифровой Потенциометр)
Не получается запустить. Посмотрите, где я не прав?
(Или может кто свой рабочий код кинет...)
include "p16f873A.inc"
cs equ 0 ;PortB - 0 бит
org 0x000 ; Reset Vector
Call Delay528ms ;Код пауз не кидаю
Call Delay528ms ;Код пауз не кидаю
;------- Настройка портов и SPI в режим мастера ---------------------------------------------
bcf STATUS, RP0 ; need to set bank 0
clrf PORTC ; initialize port c
bsf STATUS, RP0 ; need to set bank 1
movlw b'00000000' ; all bits are outputs
movwf TRISC ;
movlw b'01111110' ;
movwf TRISB ;
clrf PIE1 ; disables all peripheral ints
clrf INTCON ; disables all interrupts
bcf STATUS, RP0 ; need to set bank 0
clrf SSPCON ; clear SSP control register
movlw b'00110001' ; SPI master, clk/16, ckp=0 ;old 00110001
movwf SSPCON ; SSPEN enabled
;------- Основные действия ---------------------------------------------
bsf PORTC, cs
Call Delay528ms ;Код пауз не кидаю
Call Delay528ms ;Код пауз не кидаю
bcf PORTC, cs
; movlw b'00010001'
movlw b'10001000'
call WriteSPIData
; movlw b'00001000'
movlw b'00000000'
call WriteSPIData
movlw b'00000100'
call WriteSPIData
nop
nop
nop
bsf PORTC, cs
Begin
nop
goto Begin
;------------------------------------------------------
WriteSPIData
movwf SSPBUF
loop1
bsf STATUS, RP0
btfss SSPSTAT, BF
goto loop1
bcf STATUS, RP0
retlw 0
E-mail: info@telesys.ru