реклама на сайте
подробности

 
 
> помогите с прогой, для ds18B20
skilful
сообщение Apr 23 2006, 18:08
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 186
Регистрация: 23-04-06
Из: Сочи
Пользователь №: 16 411



помогите, плизз, с прогой для at90s2313 - не могу разобраться почему не работает. Сброс ds18B20 происходит нормально - датчик "отвечает", а вот ПЗУ не читается, т.е. читается 0xFF - все единички для каждого символа ПЗУ. Или может у кого есть образцы подпрограмм для работы с этим датчиком
Датчик висит на PD6, кварц = 8 МГц

В отладчике проганяю прогу все в норме вроде как - короче не вижу ошибки хоть убей smile.gif

Вот есть такой исходник:


...

ldi r16,0b11111111
out DDRB,r16

ldi r16,0b00111000 ;PD0 для датчика = 0 - запись/чтение
out DDRD,r16

rcall reset ;процедура сброса происходит нормально
...

testOK:

ldi r20,0x033 ;код чтения ПЗУ
rcall wr8bit

rcall rd8bit

subi r20,0xD0 ;чтение первого символа ПЗУ - судя по
out PORTB,r20 ;расчетам читается как FF не пойму почему?
rcall strDelE

new:
rjmp new


...
; процедуры

;==================================================================
;подпрограмма записи байта
wr8bit:
ldi r17,8 ;запись 8 бит
wrb: ror r20 ;сдвиг байта из r20 младшим битом вправо через С
brcs c_1

rcall wr0sl ;запись 0
rjmp cnwr
c_1:
rcall wr1sl ;запись 1
cnwr:
dec r17
rcall imp2us
brne wrb
ret
;=====================================================================
;подпрограмма чтения байта
rd8bit:
ldi r17,8 ;чтение 8 бит
rdb:
rcall rdslot
ror r20 ;сдвиг младшим битом вперед из С
dec r17
rcall imp2us
brne rdb ;результат в r20
ret
;*****************************************************************************
;подпрограмма чтения слота
rdslot:
cbi PORTD,6 ;сбросить PD6
rcall del
nop ;задержка на 4 мкс
nop
nop
nop
nop
sbi PORTD,6

ldi r16,3 ;задержка на 10 мкс
rcall impulse ;
sbis PIND,6 ;если чт.1, то С=1

rjmp exread
sec
exread:
ldi r16,25 ;задержка на 60 мкс
rcall impulse
ret



;подпрограмма записи 0 в слот
wr0sl:
cbi PORTD,6
ldi r16,36 ;задержка на 85 мкс
rcall impulse ;
sbi PORTD,6
ret
;подпрограмма записи 1 в слот
wr1sl:
cbi PORTD,6
rcall imp2us ;4 мкс
rcall imp2us
sbi PORTD,6
ldi r16,35 ;задержка на 85 мкс
rcall impulse ;
ret






;=================================================================
impulse: ;регулируемая задержка
cn0:
rcall imp2us
dec r16
brne cn0
ret



imp2us: ;задержка на 2 мкс
rcall del
nop
nop
ret


del:
ret





Заранее благодарю
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 21:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.0134 секунд с 7
ELECTRONIX ©2004-2016