Ср янв 18, 2023 13:06:51
Ср янв 18, 2023 15:00:34
LDS R22, FIFO+0 // Чтение SRAM -2 такт
OUT SPDR, R22 // Запись SPI -1 такт
while_0: // while(!(SPSR & (1<<7)));
SBIC PINB, 2 // проверка SS = 0 -1 такт
RJMP SPI_stop // > SPI_stop -1 такт // -1 такт(переход)
SBIS SPSR, 7 // проверка флаг SPIF -1 такт(SPIF Сбрасывается при чтении SPSR)
RJMP while_0 // > while_ -1 такт // -1 такт(переход)
IN R22, SPDR // Чтение SPI -1 такт
STS FIFO+0, R22 // Запись SRAM -2 такт
SPI_stop: // SPI_stop
Ср янв 18, 2023 15:07:06
Ср янв 18, 2023 15:17:06
// передаём первый байт
LDS R22, FIFO+0 // Чтение SRAM -2 такт
OUT SPDR, R22 // Запись SPI -1 такт
while_0: // while(!(SPSR & (1<<7)));
SBIC PINB, 2 // проверка SS = 0 -1 такт
RJMP SPI_stop // > SPI_stop -1 такт // -1 такт(переход)
SBIS SPSR, 7 // проверка флаг SPIF -1 такт(SPIF Сбрасывается при чтении SPSR)
RJMP while_0 // > while_ -1 такт // -1 такт(переход)
IN R22, SPDR // Чтение SPI -1 такт
STS FIFO+0, R22 // Запись SRAM -2 такт
// передаём второй байт
LDS R22, FIFO+1 // Чтение SRAM -2 такт
OUT SPDR, R22 // Запись SPI -1 такт
while_1: // while(!(SPSR & (1<<7)));
SBIC PINB, 2 // проверка SS = 0 -1 такт
RJMP SPI_stop // > SPI_stop -1 такт // -1 такт(переход)
SBIS SPSR, 7 // проверка флаг SPIF -1 такт(SPIF Сбрасывается при чтении SPSR)
RJMP while_1 // > while_ -1 такт // -1 такт(переход)
IN R22, SPDR // Чтение SPI -1 такт
STS FIFO+1, R22 // Запись SRAM -2 такт
SPI_stop: // SPI_stop
Ср янв 18, 2023 15:19:12
Ср янв 18, 2023 15:38:09
IND_OUT:
OUT SPDR,R20
WAIT_R20:
IN R16,SPSR
SBRS R16,SPIF
RJMP WAIT_R20
;*****
OUT SPDR,R21
WAIT_R21:
IN R16,SPSR
SBRS R16,SPIF
RJMP WAIT_R21
Ср янв 18, 2023 19:51:39
Ср янв 18, 2023 22:05:56
// В даташите на АЦП нужно узнать, какой байт отправляется первым, старший или младший
Init_Ext_ADC:
...
ldi r16, HIGH (SETT_EXT_ADC_VAL) // Отправка старшего байта значений настройки АЦП.
out SPDR, r16
Init_Ext_ADC_1:
in r16, SPSR
sbrs r16, SPIF
rjmp Init_Ext_ADC_1
ldi r16, LOW (SETT_EXT_ADC_VAL) // Отправка младшего байта значений настройки АЦП.
out SPDR, r16
Init_Ext_ADC_2:
in r16, SPSR
sbrs r16, SPIF
rjmp Init_Ext_ADC_2
...
Чт янв 19, 2023 15:14:47