К attiny25 подключил ЦАП AD5601, Посмотрел даташит и попробовал записать 8-бит даних в регистр.
Регистр там сдвиговый 16-битный. старшие 8-м бит = 0 . младшие 8-м бит 00001111.- значение для выхода
Но на виходе всегда 0
LDI BTS,0X0F
RCALL Send_Byte
Send_Byte:
RCALL Clock_ONE
RCALL SYNC_null
LDI Bit_counter, 8
CLR TEMP
RCALL DATA_NULL
RCALL Clock_NULL
RCALL Clock_ONE
next_bit_sI:
SBRC TEMP,7
rjmp sI
RCALL Data_null
rjmp sII
sI: RCALL Data_one
sII: RCALL Clock_NULL
RCALL Clock_ONE
ROL TEMP
DEC Bit_counter
BRNE next_bit_sI
RCALL DELAY
RCALL DELAY
RCALL DELAY
LDI Bit_counter, 8
next_bit_s:
SBRC BTS,7
rjmp s1
RCALL Data_null
rjmp s11
s1: RCALL Data_one
s11: RCALL Clock_NULL
RCALL DELAY
RCALL Clock_ONE
ROL BTS
DEC Bit_counter
BRNE next_bit_s
rcall Clock_one
RCALL SYNC_ONE
RET
; BTS ;?????????? ????
; portc5 = SCL
; portc4 = SDA
SYNC_null:
CBI PORTB,SYNC
RCALL DELAY
RET
SYNC_ONE:
SBI PORTB,SYNC
RCALL DELAY
RET
Clock_null:
CBI PORTB,PB1
CBI portB,scl
RCALL DELAY
RET
Clock_one:
SBI PORTB,PB1
SBI portB,scl
RCALL DELAY
RET
Data_null:
CBI portB, sda
RCALL DELAY
RET
Data_one:
SBI portB,sda
RCALL DELAY
RET
HEELP!! attiny25>AD5601(dac) не могу записать регистр
HEELP!! attiny25>AD5601(dac) не могу записать регистр
Последний раз редактировалось jeck-wolf Пн июл 25, 2011 16:18:15, всего редактировалось 3 раза.
- Реклама
