to MBedder два дня бьюсь SPI1 не работает на приём. передача работает без вопросов , массивы в неск килобайт передаются исправно. а вот читает со слэйва исключительно нули , хотя последний шлёт посылки (осцилом смотрел).
mapout/mapin - твои маккросы, проверял в отладчике в RPINR20 записано 0х1F01. такое ощущение что SDI1 ни хрена не подключен к RB1. камень PIC24HJ128GP502. где я накосячил? спасибо
;********************************************************************
init_SPI1:
bclr TRISB, #3 ; pin B3(SS1) - output
bset LATB, #3 ; SS1 = 1
bclr TRISB, #2 ; pin B2(SDO1) - output
mapout SDO1, RP2
bclr TRISB, #0 ; pin B0(SCK1) - output
mapout SCK1OUT, RP0
bset TRISB, #1 ; pin B1(SDI1) - input
mapin SDI1, RP1
mov #(1<<CKE)|(1<<MSTEN)|(7<<SPRE0)|(2<<PPRE0), w0
mov w0, SPI1CON1 ; SPI1 - master/ 8bit/ Fsck=2,5mhz
bset SPI1STAT,#SPIEN ; SPI1 enable
bclr IFS0,#SPI1IF
return
;********************************************************************
SPI1_data_transfer_byte: ; w1- low byte output data w2- low byte input data
bclr LATB, #3 ; SS1 = 0
mov W1, SPI1BUF
spi1_wait: btss IFS0,#SPI1IF
bra spi1_wait
mov SPI1BUF , W2
bclr IFS0,#SPI1IF
bset LATB, #3 ; SS1 = 1
return
;********************************************************************