Change Time Values so it works for all Adapters
[owSlave2.git] / common / OWSet_ATTINYX4.s
index c0a074b..b157207 100644 (file)
@@ -37,6 +37,7 @@
 #define OW_DDR _SFR_IO_ADDR(DDRB)  //pin direction register
 #define TCNT_REG _SFR_IO_ADDR(TCNT0)
 
+
 #define DB_PORT _SFR_IO_ADDR(PORTB) //DEBUG
 #define DB_PIN _SFR_IO_ADDR(PINB) //DEBUG
 #define DB_DDR _SFR_IO_ADDR(DDRB) //DEBUG
 #define RESETZEROMARKER cbi _SFR_IO_ADDR(DDRB),3
 #define TESTZEROMARKER sbic _SFR_IO_ADDR(DDRB),3
 
-//#define sdb sbi _SFR_IO_ADDR(PORTB),DB_PINN
-//#define cdb cbi _SFR_IO_ADDR(PORTB),DB_PINN
+#ifdef _DB_
+#define sdb sbi _SFR_IO_ADDR(PORTB),DB_PINN
+#define cdb cbi _SFR_IO_ADDR(PORTB),DB_PINN
+#else
+#define sdb
+#define cdb
+#endif
 
 #define TIMER_INTERRUPT TIM0_OVF_vect
 #define PIN_INTERRIPT EXT_INT0_vect
 //#define OWT_WRITE 18
 //#define OWT_READ 4
 
-#define OWT_MIN_RESET 80 
-#define OWT_RESET2 100
+#define OWT_MIN_RESET 180
+#define OWT_RESET2 80
 #define OWT_RESET_PRESENT 30
 #define OWT_PRESENT 130
 #define OWT_WRITE 35
 #define OWT_READ 12
+#define OWT_ZP_WAIT_LOW_TO 60  ; Zeit fuer die Maximale Lowzeit bei der Zerro Polling pruefung. Ist die Leitung laenger low, ist es vieleicht ein Reset 
+#define OWT_ZP_WAIT_HIGH_TO 90 ; Zeit fuer die Maximale Hight zeit bis zu einem Low Impuls vom Master. Nach laengeren Pausen wird nicht mehr gepollt sondern der Interrup vererndet.
 
 
+.macro CLEAR_TOV_FLAG
+       ldi r_temp,1
+       out _SFR_IO_ADDR(TIFR0),r_temp
+.endm
+
+.macro JMP_NO_TOV
+       in r_temp, _SFR_IO_ADDR(TIFR0)
+       sbrc r_temp,TOV0 ; wenn ueberlauf gleiich weiter
+.endm
 
 .macro CLEAR_INTERRUPT_FLAG 
        ldi r_temp,(1<<INTF0);inerrupt flags durch 1 loeschen..... 0 macht nix
        ;set falling edge
        ldi r_temp,(1<<ISC01)
        out _SFR_IO_ADDR(MCUCR),r_temp
-       //sbi DB_DDR,DB_PINN
+#ifdef _DB_
+       sbi DB_DDR,DB_PINN
+#endif
 .endm