Страница 1 из 1

ATMega16 + DS18B20 не проходит инициализация

Добавлено: Пт фев 25, 2011 17:27:12
mxmedia

Код: Выделить всё

...
	rcall 	ds_init 
...
delay500us:
	push	r16
	ldi		r16,11
d500us1:
	rcall	delay45us
	dec		r16
	brne	d500us1
	pop		r16
	ret

delay65us:
	push	r16
	ldi		r16,82
	rjmp	d45us1

delay45us:
	push	r16
	ldi		r16,56
d45us1:
	dec		r16
	brne	d45us1
	nop
	pop		r16
	ret

ds_init:
	clr		r16
	sbi		DDRC,3
	rcall	delay500us
	cbi		DDRC,3
	rcall	delay65us
	sbic	PINC,3
	inc		r16
	rcall	delay500us
	ret
После команды

Код: Выделить всё

cbi		DDRC,3
на ноге данных DS18B20 появляется 1 и не отвечает сигналом присутствия (0)...

Re: ATMega16 + DS18B20 не проходит инициализация

Добавлено: Пт фев 25, 2011 23:25:17
Stalker-U
Привет. Я уже спрашивал: http://radiokot.ru/forum/viewtopic.php? ... 85#p727385
Поcмотри. Там ChipKiller привёл примеры кода на асме. Вдруг поможет. Мне помогло - уже считал температуру.

Re: ATMega16 + DS18B20 не проходит инициализация

Добавлено: Сб фев 26, 2011 10:25:29
mxmedia
Спасибо за ответ, но я читал уже эту тему! Проблема была не в коде... Проблема была в фьюзах временные задержки считал под частоту 4 МГц, а мега работала на 1 МГц...