X-Git-Url: https://git.smho.de/gw/?p=owSlave2.git;a=blobdiff_plain;f=common%2FOWPinInterrupt.s;h=72aef80a794cd506177e34a97d9fd8dd2141f668;hp=00feec0f99f90ebcf286cf267cb4267d88b69eea;hb=4df4c7ba2c95a48e95873b1f3a93d62ed9727eba;hpb=28c2911a7459ae2977c0cb0228c0ca2af1c345bf diff --git a/common/OWPinInterrupt.s b/common/OWPinInterrupt.s index 00feec0..72aef80 100644 --- a/common/OWPinInterrupt.s +++ b/common/OWPinInterrupt.s @@ -115,12 +115,15 @@ iend: rjmp zeropolling rjmp no_zerromaker zeropolling: + sbrc r_sendflag,1 ; sendflag bit 1 -> switch off zeropolling in software eg for asking convert is donne (DS2450, DS18B20 and others) + rjmp no_zerromaker +zeropolling_h_loop: sbic OW_PIN,OW_PINN ;warten bis leitung wieder h rjmp zeropolling_wait ;leitung ist low ->Schleie in r_temp,TCNT_REG cpi r_temp,(~OWT_MIN_RESET)+OWT_ZP_WAIT_LOW_TO;aller zwei us zaehlt der timer brsh zeropolling_timeout ;Timeout Reset? - rjmp zeropolling + rjmp zeropolling_h_loop zeropolling_wait: sbis OW_PIN,OW_PINN ;warten bis leitung wieder l rjmp zeropolling_low_imp ;Leitung ist low raus aus schleufe