\r
\r
.ORG 0x0EC0\r
-//7552 Byte \r
+\r
start: \r
cli\r
ldi temp,0\r
mov zero,temp\r
- set_clock 0x00 ;8mhz\r
+ set_clock 0x01 ;4mhz\r
ldi mode,OWM_SLEEP\r
- ldi temp,(1<<CS01) //1us\r
+ ldi temp,(1<<CS01) //2us\r
out TCCR0B,temp\r
ldi temp, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse \r
out SPH, temp \r
pro_loop:\r
;sbi PORTB,0\r
owwl ;wait for line goes low (polling)\r
- sbrs writelow,0 ;test of zero send\r
+ sbrc writelow,0 ;test of zero send\r
+ sbi OW_DDR,OW_PIN ;yes pull line to low 2us faster\r
+ sbrs writelow,0 ;test egain 2us faster.....\r
rjmp pro_loop1 ;no ? goes next\r
- sbi OW_DDR,OW_PIN ;yes pull line to low\r
- ldi param,45 ;wait for 50 us\r
+ ldi param,20 ;wait for 50 us\r
rcall wait_time\r
clr writelow ;reset write low indecator\r
cbi OW_DDR,OW_PIN ;release line\r
rjmp pro_loop_end\r
\r
pro_loop_resv:\r
- ldi param,15 ;wait 15us\r
+ ldi param,7 ;wait 15us\r
rcall wait_time\r
lsr rwbyte\r
;cbi PORTB,0\r
sbic OW_PINN,OW_PIN //leitung wieder high\r
rjmp pro_loop\r
in temp,TCNT0\r
- cpi temp,130\r
+ cpi temp,63\r
brlo pro_loop_end_test_reset\r
rcall pro_sleep_s2\r
rjmp pro_loop\r
sbic OW_PINN,OW_PIN //leitung wieder high\r
ret\r
in temp,TCNT0\r
- cpi temp,200\r
+ cpi temp,100\r
brlo pro_sleep_s1\r
//leitung wieder high\r
pro_sleep_s2:\r
owwh \r
- ldi param,40\r
+ ldi param,20\r
rcall wait_time\r
//Presents Impuls\r
sbi OW_DDR,OW_PIN\r
- ldi param,130\r
+ ldi param,75\r
rcall wait_time\r
cbi OW_DDR,OW_PIN\r
//init read byte\r
clr smode\r
ldi mode,OWM_READ_ROM_COMMAND\r
//Wait for all other devices presents impuls finished\r
- ldi param,40\r
+ ldi param,20\r
rcall wait_time\r
ret\r
\r