tm3d
/
owSlave2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Linux Git
[owSlave2.git]
/
programmer
/
programmer
/
programmer.asm
diff --git
a/programmer/programmer/programmer.asm
b/programmer/programmer/programmer.asm
index
5a51e4e
..
b08cc96
100644
(file)
--- a/
programmer/programmer/programmer.asm
+++ b/
programmer/programmer/programmer.asm
@@
-83,14
+83,14
@@
jreset:
\r
\r
.ORG 0x0EC0
\r
\r
\r
.ORG 0x0EC0
\r
-//7552 Byte
\r
+
\r
start:
\r
cli
\r
ldi temp,0
\r
mov zero,temp
\r
start:
\r
cli
\r
ldi temp,0
\r
mov zero,temp
\r
- set_clock 0x0
0 ;8
mhz
\r
+ set_clock 0x0
1 ;4
mhz
\r
ldi mode,OWM_SLEEP
\r
ldi mode,OWM_SLEEP
\r
- ldi temp,(1<<CS01) //
1
us
\r
+ ldi temp,(1<<CS01) //
2
us
\r
out TCCR0B,temp
\r
ldi temp, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse
\r
out SPH, temp
\r
out TCCR0B,temp
\r
ldi temp, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse
\r
out SPH, temp
\r
@@
-115,10
+115,11
@@
pro_copy_loop: ;copy ID on SRAM for better handling
pro_loop:
\r
;sbi PORTB,0
\r
owwl ;wait for line goes low (polling)
\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
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
rcall wait_time
\r
clr writelow ;reset write low indecator
\r
cbi OW_DDR,OW_PIN ;release line
\r
@@
-140,7
+141,7
@@
pro_loop_send1: ;prebare next bit
rjmp pro_loop_end
\r
\r
pro_loop_resv:
\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
rcall wait_time
\r
lsr rwbyte
\r
;cbi PORTB,0
\r
@@
-158,7
+159,7
@@
pro_loop_end_test_reset:
sbic OW_PINN,OW_PIN //leitung wieder high
\r
rjmp pro_loop
\r
in temp,TCNT0
\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
brlo pro_loop_end_test_reset
\r
rcall pro_sleep_s2
\r
rjmp pro_loop
\r
@@
-172,16
+173,16
@@
pro_sleep_s1:
sbic OW_PINN,OW_PIN //leitung wieder high
\r
ret
\r
in temp,TCNT0
\r
sbic OW_PINN,OW_PIN //leitung wieder high
\r
ret
\r
in temp,TCNT0
\r
- cpi temp,
2
00
\r
+ cpi temp,
1
00
\r
brlo pro_sleep_s1
\r
//leitung wieder high
\r
pro_sleep_s2:
\r
owwh
\r
brlo pro_sleep_s1
\r
//leitung wieder high
\r
pro_sleep_s2:
\r
owwh
\r
- ldi param,
4
0
\r
+ ldi param,
2
0
\r
rcall wait_time
\r
//Presents Impuls
\r
sbi OW_DDR,OW_PIN
\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
rcall wait_time
\r
cbi OW_DDR,OW_PIN
\r
//init read byte
\r
@@
-190,7
+191,7
@@
pro_sleep_s2:
clr smode
\r
ldi mode,OWM_READ_ROM_COMMAND
\r
//Wait for all other devices presents impuls finished
\r
clr smode
\r
ldi mode,OWM_READ_ROM_COMMAND
\r
//Wait for all other devices presents impuls finished
\r
- ldi param,
4
0
\r
+ ldi param,
2
0
\r
rcall wait_time
\r
ret
\r
\r
rcall wait_time
\r
ret
\r
\r