А у меня проблема с алгоритмом если бы кто написал на обычном си без структур какие биты куда, то дело пошло а сейчас только писать получается регистры а прочитать нет. просто бы один байт передать хоть и поймать ))) Вот на ассемблере знакомый дал кусок кода
ЗАДАНИЕ РЕЖИМОВ РАДИОКАНАЛА
LDI R16,0b00100000 ;Запись в регистр CONFIG (кн. ESC,Ё,1)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,0b00010011 ;Регистр CONFIG на прием,PWR_UP,INT RX/TX
; LDI R16,0b00110011 ;Регистр CONFIG на прием,PWR_UP,INT RX
LDI R16,0b01110010 ;Нет прерываний. Передача (D0=0)
; LDI R16,0b01110011 ;Регистр CONFIG на прием,PWR_UP,без INT
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Записьна закончена
LDI R16,0b00100001 ;Запись в регистр EN_AA (кн. 2)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$00 ;Выключение автоопознавания
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена
LDI R16,0b00100010 ;Запись в регистр EN_RXADDR (кн. 3)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$01 ;Вкл.адр.приема ТОЛЬКО канала 0
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена
LDI R16,0b00100011 ;Запись в регистр SETUP_AW (кн. 4)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$01 ;Длина адреса 3 байта
; LDI R16,$03 ;Длина адреса 5 байта
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена
LDI R16,0b00100100 ;Запись в регистр SETUP_RETR (кн. 5 и 6)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$00 ;Мин.вр.зад.ретр. Выкл.ретрансмит
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена
LDI R16,0b00100101 ;Запись в регистр RF_CH (кн. 7)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$02 ;По умолчанию 2 канал
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена
LDI R16,0b00100110 ;Запись в регистр RF_SETUP (кн.
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,$0F ;2 Мб/c,Макс.мощн,Преамп вкл(?)
LDI R16,$07 ;1 Мб/c,Макс.мощн,Преамп вкл(?)
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена
LDI R16,0b00100111 ;Запись в регистр STATUS (кн. 9)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$70 ;Сброс прерываний
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена
; LDI R16,0b00101010 ;Запись в регистр RX_ADDR_P0 (кн. +)
; CBI PORTD,6 ;Сбросим строб CSN
; RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,$A5 ;Адрес 0
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A6 ;Адрес 1
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A7 ;Адрес 2
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A8 ;Адрес 3
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A9 ;Адрес 4
; RCALL TX_SPI ;Передадим через SPI
; SBI PORTD,6 ;Установим строб CSN Запись закончена
;
; LDI R16,0b00110000 ;Запись в регистр TX_ADDR (кн. R)
; CBI PORTD,6 ;Сбросим строб CSN
; RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,$A5 ;Адрес 0
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A6 ;Адрес 1
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A7 ;Адрес 2
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A8 ;Адрес 3
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A9 ;Адрес 4
; RCALL TX_SPI ;Передадим через SPI
; SBI PORTD,6 ;Установим строб CSN Запись закончена
LDI R16,0b00110001 ;Запись в регистр RX_PW_P0 (кн. T)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,$01 ;Принимаем один байт
; LDI R16,$04 ;Принимаем четыре байта
LDI R16,$20 ;Принимаем 32 байта
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена
CBI PORTD,5 ;Отрицательный строб на CE ›10 мкс
RCALL ZAD_10MKS ;Задержка ›10 мкс
SBI PORTD,5 ;
Если его на си переделать код рабочий?