Browse Source

cleanup 1w driver

Juraj Ďuďák 2 years ago
parent
commit
47ae5d8fc2
4 changed files with 52 additions and 391 deletions
  1. 9 6
      Inc/memory_ec20.h
  2. 34 166
      Inc/one_wire.h
  3. 6 2
      Src/memory_ec20.c
  4. 3 217
      Src/one_wire.c

+ 9 - 6
Inc/memory_ec20.h

@@ -21,19 +21,22 @@
 
 
 typedef struct _onewire_ec20_{
-    uint8_t buffer_rx[32];
-    uint8_t buffer_tx[32];
+    uint8_t buffer_rx[4];
+    uint8_t buffer_tx[4];
     uint8_t real_size;
     uint8_t ROM[8];
 }OneWire_EC20_typeDef;
 
 typedef struct{
 	uint8_t (*init)(GPIO_TypeDef*, uint16_t);
-	void (*read)(uint16_t,uint8_t);
-	uint8_t (*write)(uint16_t ,uint8_t);
 	uint32_t (*read_word)(uint16_t);
 	uint16_t (*read_half_word)(uint16_t);
-	uint8_t (*write_word)(uint32_t, uint16_t);
+	/**
+	 * @brief Zapíše 4B hodnotu na adresu
+	 * @param uint32_t data dáta
+	 * @param uint16_t address adresa v pamati. Povolený rozsah: 0-0x09FF
+	 */
+	uint8_t (*write_word)(uint32_t data, uint16_t address);
 	uint8_t (*write_half_word)(uint16_t, uint16_t);
 }Ec20_MemoryDriver;
 
@@ -50,6 +53,6 @@ uint16_t DS28EC20_readData2B(uint16_t address);
 uint8_t DS28EC20_writeData4B(uint32_t, uint16_t );
 uint8_t DS28EC20_writeData2B(uint16_t data, uint16_t  adr);
 
-uint8_t DS28EC20_writeData4char(uint8_t *data, uint16_t  adr);
+//uint8_t DS28EC20_writeData4char(uint8_t *data, uint16_t  adr);
 
 #endif

+ 34 - 166
Inc/one_wire.h

@@ -1,31 +1,47 @@
-/** @addtogroup Firmware
-  * @{
-  */
-
-/** @addtogroup Implementácia_MultiSlave
-  * @{
-  */
-
-/** @defgroup OneWire_modul
- * @brief Implementácia komunikácie na zbernici 1-wire
- * @{
- */
-
 #ifndef ONE_WIRE_LIB_H
 #define ONE_WIRE_LIB_H
 
 
-//#include "stdint.h"
-#include "mcu_platform.h"
+#if defined(STM32F100xB) || defined(STM32F100xE) || defined(STM32F101x6) || defined(STM32F101xB)                       \
+    || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F102x6) || defined(STM32F102xB)                    \
+    || defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG)
+#include "stm32f1xx.h"
+#define STM32F1
+#endif
 
-//#define OW_MODULE_USE_TIMER
+#if defined(STM32F030x6) || defined(STM32F030x8) || defined(STM32F031x6) || defined(STM32F038xx)                       \
+    || defined(STM32F042x6) || defined(STM32F048xx) || defined(STM32F051x8) || defined(STM32F058xx)                    \
+    || defined(STM32F070x6) || defined(STM32F070xB) || defined(STM32F071xB) || defined(STM32F072xB)                    \
+    || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx) || defined(STM32F030xC)
+#include "stm32f0xx.h"
+#define STM32F0
+#endif // defined
+
+
+#if defined(STM32L011xx) || defined(STM32L021xx) || defined(STM32L031xx) || defined(STM32L041xx)                       \
+    || defined(STM32L051xx) || defined(STM32L052xx) || defined(STM32L053xx) || defined(STM32L061xx)                    \
+    || defined(STM32L062xx) || defined(STM32L063xx) || defined(STM32L071xx) || defined(STM32L072xx)                    \
+    || defined(STM32L073xx) || defined(STM32L081xx) || defined(STM32L082xx) || defined(STM32L083xx)
+#include "stm32l0xx.h"
+#define STM32L0
+#endif // defined
+
+#if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || defined(STM32F302xC)                       \
+    || defined(STM32F303xC) || defined(STM32F358xx) || defined(STM32F303x8) || defined(STM32F334x8)                    \
+    || defined(STM32F328xx) || defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx)                    \
+    || defined(STM32F373xC) || defined(STM32F378xx)
+#include "stm32f3xx.h"
+#define STM32F3
+#endif // defined
+#if defined(STM32L432xx)
+#include "stm32l4xx.h"
+#include "stm32l4xx_hal.h"
+#endif
 
 
 #define TRUE  0x01					// konstanty v kniznici 1-wire
 #define FALSE 0x00
 
-
-#define OW_USE_2_WIRE   FALSE
 #define MCU_FREQUENCY	32000		//4194
 #define USE_STRONG		0
 
@@ -70,8 +86,6 @@
 #define OW_DOWN_SET		(oneWirePins.port->BSRR= oneWirePins.pin_ow_down)
 #define OW_DOWN_CLEAR	(oneWirePins.port->BRR = oneWirePins.pin_ow_down)
 
-//#define OW_STRONG_SET	(oneWirePins.port->BSRR = oneWirePins.pin_ow_strong)
-//#define OW_STRONG_CLEAR	(oneWirePins.port->BRR  = oneWirePins.pin_ow_strong)
 
 //#define OW_NO_INTERRUPTS_ONLY_SYSTICK
 #ifdef OW_NO_INTERRUPTS_ONLY_SYSTICK
@@ -91,9 +105,6 @@
 #endif // OW_NO_INTERRUPTS_ONLY_SYSTICK
 
 
-#define OW_USE_TICKS
-#ifdef OW_USE_TICKS
-
 /**
  * @brief Delay ticks helper.
  * @param ticks Count of ticks to wait divided by 3.
@@ -146,117 +157,6 @@
 										OW_DELAY_US((us),(freq),(tick_offs)); \
 									}while(0);
 
-#else
-
-#ifdef OW_MODULE_USE_TIMER
-
-void delay_us_long(uint16_t time);
-void delay_us(uint16_t time);
-
-#else
-#define delay_us_0(time) {    \
-                __ASM volatile ( \
-                "mov r0, %0 \n"     \
-                "5: \n"             \
-                "sub r0, #1 \n"     \
-                "bhi 5b \n":  : "i"(time) :);    \
-                }
-
-/* ------------------------------------------------------------------*/
-/* ----------------------------  STM32 L0  --------------------------*/
-/* ------------------------------------------------------------------*/
-#ifdef STM32L0
-/* ------------------------- LSI = 8000  kHz -------------------------*/
-#if MCU_FREQUENCY == 8000
-#define delay_us(time){ \
-    delay_us_0(time) \
-    delay_us_0(time) \
-    delay_us_0(time-2) \
-    }
-
-#define delay_us_long(time) {    \
-    delay_us(time)  \
-    delay_us(time)  \
-    delay_us(time)  \
-    delay_us(time-50)  \
-}
-#endif // MCU_FREQUENCY
-
-/* -------------------------- MSI =  4194 kHz ---------------------------*/
-/**
- * time in code  |  measured time [us]
- *   	6		 |  5
- *   	10		 |	9.5
- *   	20       |  20.25
- *   	50		 |  52
- */
-#if MCU_FREQUENCY == 4194
-#define delay_us(time){ \
-    delay_us_0(time-3) \
-    delay_us_0((time-1)/2) \
-    }
-
-#define delay_us_long(time) {    \
-    delay_us(time)  \
-    delay_us(time)  \
-    delay_us(time)  \
-    delay_us(time-10)  \
-}
-#endif // MCU_FREQUENCY
-
-/* --------------------------- MSI = 2097 kHz ---------------------------*/
-#if MCU_FREQUENCY == 2097
-#define delay_us(time){ \
-	delay_us_0( ((time-2)*2/3) ) \
-    }
-
-
-#define delay_us_long(time) {    \
-    delay_us(time)  \
-    delay_us(time-10)  \
-    delay_us(time-10)  \
-    delay_us(time-10)  \
-}
-
-#endif // MCU_FREQUENCY
-
-#endif // STM32L0
-
-/* ------------------------------------------------------------------*/
-/* ----------------------------  STM32 F0  --------------------------*/
-/* ------------------------------------------------------------------*/
-#ifdef STM32F0
-
-/* --------------------------- LSI = 48 MHz ---------------------------*/
-#if MCU_FREQUENCY == 48
-#define delay_us(time){ \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time) \
-    owSetDelayUs_0(time-1) \
-    }
-
-#define delay_us_long(time) {    \
-    owSetDelayUs(time);    \
-    owSetDelayUs(time);    \
-    owSetDelayUs(time);    \
-    owSetDelayUs(time);    \
-}
-#endif // FREQUENCY
-
-#endif // STM32F0
-
-#endif // OW_MODULE_USE_TIMER
-
-#endif // OW_USE_TICKS
 
 
 /**
@@ -282,10 +182,6 @@ typedef struct {
     __IO uint8_t ow_state;
     /** Priznak pripravenosti dat. Hodnoty môžu nadobúdať zo štruktúry oneWireDataReady_typeDef. */
     __IO uint8_t ow_data_ready;
-#ifdef OW_MODULE_USE_TIMER
-    /** Inštancia časovača knižnice HAL. Časovač je použitý pre časovanie komunikácie */
-    TIM_HandleTypeDef *owTimer;
-#endif
 } oneWireDriver_typeDef;
 
 /**
@@ -307,9 +203,6 @@ typedef struct oneWirePins_struct {
 typedef struct oneWirePin_struct {
     __IO uint16_t pin_ow;
     __IO uint16_t pin_ow_moder_bit;
-#if OW_USE_2_WIRE == 1
-    volatile uint16_t pin_ow_in;
-#endif // OW_USE_2_WIRE
     GPIO_TypeDef* port;
 } oneWirePin_typeDef;
 
@@ -345,15 +238,7 @@ typedef enum {
 } oneWireTimerState_typeDef;
 
 
-#ifdef OW_MODULE_USE_TIMER
-void oneWire_init(TIM_HandleTypeDef *timer, GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
-#else
-#if OW_USE_2_WIRE == 1
-void oneWire_init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, uint16_t GPIO_Pin_i );				// konfiguracia portu pre 1-wire
-#else
 void oneWire_init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin );				// konfiguracia portu pre 1-wire
-#endif // OW_USE_2_WIRE
-#endif
 
 uint8_t owReset(void);				// reset zbernice a kontrola pritomnosti zariadeni
 uint8_t owFirst();				// nacitanie ID prveho zariadenia
@@ -367,12 +252,7 @@ uint8_t owCrc8(uint8_t);
 uint8_t owReadBit(void);
 void owWriteByte(uint8_t, uint8_t);
 uint8_t owReadByte(void);
-#ifdef OW_USE_TICKS
 void owWriteBit(uint8_t*);
-#else
-void owWriteBit(uint8_t);
-#endif
-
 void owWriteBitStrong(uint8_t);
 
 void owSetDelayMs(uint16_t time);
@@ -387,15 +267,3 @@ void ow_SetStrong(void);
 
 
 #endif //ONE_WIRE_LIB_H
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */

+ 6 - 2
Src/memory_ec20.c

@@ -4,8 +4,6 @@ OneWire_EC20_typeDef mem_page;
 
 Ec20_MemoryDriver memory_ec20 = {
 		DS28EC20_init,
-		DS28EC20_readMem,
-		DS28EC20_writeMem,
 		DS28EC20_readData4B,
 		DS28EC20_readData2B,
 		DS28EC20_writeData4B,
@@ -45,6 +43,10 @@ void DS28EC20_readMem(uint16_t address, uint8_t size) {
 }
 
 
+/**
+ * @brief Write data to memory
+ * @return 0 - OK, 1 or 2 - bad address
+ */
 uint8_t DS28EC20_writeMem(uint16_t addr, uint8_t size) {
     uint8_t TA1 = (uint8_t) (addr & 0xFF);
     uint8_t TA2 = (uint8_t) ((addr >> 8) & 0xFF);
@@ -126,6 +128,7 @@ uint8_t DS28EC20_writeData2B(uint16_t data, uint16_t adr) {
     return DS28EC20_writeMem(adr,2);
 }
 
+/*
 uint8_t DS28EC20_writeData4char(uint8_t *data, uint16_t adr) {
     mem_page.buffer_tx[0] = data[0];
     mem_page.buffer_tx[1] = data[1];
@@ -133,3 +136,4 @@ uint8_t DS28EC20_writeData4char(uint8_t *data, uint16_t adr) {
     mem_page.buffer_tx[3] = data[3];
     return DS28EC20_writeMem(adr,4);
 }
+*/

+ 3 - 217
Src/one_wire.c

@@ -71,43 +71,6 @@ static const uint8_t dscrc_table[] = {
 //--------------------------------------------------------------------------
 // Implementacia low-level funkcii pre STM32
 //--------------------------------------------------------------------------
-#ifdef OW_MODULE_USE_TIMER
-void delay_us(uint16_t time) {
-
-    time -= 3;
-    oneWireDrv.owTimer->Instance->CNT=0;
-    HAL_TIM_Base_Start(oneWireDrv.owTimer);
-    while(oneWireDrv.owTimer->Instance->CNT < time);
-    HAL_TIM_Base_Stop(oneWireDrv.owTimer);
-}
-
-void delay_us_long(uint16_t time){
-	delay_us(time);
-}
-#endif
-
-/**
-* Zruší stav STRONG na zbernici 1-wire.
-*/
-inline void ow_ClearStrong(){
-//    OW_STRONG_CLEAR;
-}
-
-/**
-* Zbenicu 1-wire nastaví do stavu STRONG (silná hodtnota "1").
-*/
-inline void ow_SetStrong(void) {
-//    OW_STRONG_SET;
-}
-
-
-/**
-* Zbenicu 1-wire nastaví do stavu, kedy je možné zo zbenice čítať hodnoty.
-*/
-static inline void ow_SetReadState(void) {
-//    OW_UP_CLEAR;
-//    OW_DOWN_CLEAR;
-}
 
 /**
 * Nastavi pin pre 1W ako vstupný.
@@ -115,8 +78,6 @@ static inline void ow_SetReadState(void) {
 * Opis registrov: http://www.hertaville.com/stm32f0-gpio-tutorial-part-1.html
 */
 __attribute__((optimize("O1")))  static void setPinIn(){
-#if OW_USE_2_WIRE == 0
-
 #ifdef STM32F0
     #define PIN_IN_USE_IN
     uint32_t temp = oneWirePins.port->MODER;
@@ -134,12 +95,8 @@ __attribute__((optimize("O1")))  static void setPinIn(){
 #endif // STM32L0
 
 #ifndef PIN_IN_USE_IN
-    #error MUSITE POUZIT VERIZU 1-WIRE PRE 2 PINY PROCESORA
-    //GPIO_InitStructure.Mode = GPIO_MODE_INPUT;
-    //HAL_GPIO_Init(oneWirePins.port, &GPIO_InitStructure);
+    #error aktualne MCU nie je podporovane
 #endif // PIN_IN_USE_IN
-
-#endif // OW_USE_2_WIRE
 }
 
 /**
@@ -148,8 +105,6 @@ __attribute__((optimize("O1")))  static void setPinIn(){
 * Opis registrov: http://www.hertaville.com/stm32f0-gpio-tutorial-part-1.html
 */
 __attribute__((optimize("O1"))) static void setPinOut() {
-#if OW_USE_2_WIRE == 0
-
 #ifdef STM32F0
     #define PIN_IN_USE_IN
     uint32_t temp = oneWirePins.port->MODER;
@@ -167,12 +122,8 @@ __attribute__((optimize("O1"))) static void setPinOut() {
 #endif // STM32L0
 
 #ifndef PIN_IN_USE_IN
-    //GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
-    //HAL_GPIO_Init(oneWirePins.port, &GPIO_InitStructure);
-    #error MUSITE POUZIT VERIZU 1-WIRE PRE 2 PINY PROCESORA
+	#error aktualne MCU nie je podporovane
 #endif // STM32F0
-
-#endif // OW_USE_2_WIRE
 }
 
 
@@ -182,29 +133,16 @@ __attribute__((optimize("O1"))) static void setPinOut() {
 
 /**
  * @brief   Inicializacia drivera zbernice 1-wire
- * Driver podporuje komunikáciu na 1-wire zbenici v implementácii 2 pinov (1xvstup, 1xvystup pin),
- * alebo 1 pinu (pin je podľa potreby zmenený). V aktuálnej verzii nie je podpora boostera zbernice.
- * Toto nastavenie je dané v súbore module_one_wire.h konštantou OW_USE_2_WIRE
  * - Nastavia sa časové konštanty na preddefinované hodnoty.
  * - Nastavia sa piny pre zbernicu One-wire
  *
  * @param   timer časovač použirý an generovanie:
  *          - blokujúcej pauzy v ráde us
  * @param GPIOx port pre piny
- * @param GPIO_Pin pin pre zápis na zbernicu (defined OW_USE_2_WIRE), alebo zápis/čítanie (NOT defined OW_USE_2_WIRE)
- * @param GPIO_Pin_in pin pre čítanie na zbernicu (defined OW_USE_2_WIRE)
+ * @param GPIO_Pin pin pre zápis na zbernicu pre zápis/čítanie
  * @return none
  */
-#ifdef OW_MODULE_USE_TIMER
-void oneWire_init(TIM_HandleTypeDef *timer, GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) {
-    oneWireDrv.owTimer = timer;
-#else
-#if OW_USE_2_WIRE == 1
-void oneWire_init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, uint16_t GPIO_Pin_in ) {
-#else
 void oneWire_init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin ) {
-#endif
-#endif
 	oneWireDrv.one_wire_timing_settings = OW_SETTING_NORMAL;
     oneWirePins.port = GPIOx;
     oneWirePins.pin_ow = GPIO_Pin;
@@ -218,15 +156,10 @@ void oneWire_init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin ) {
     oneWirePins.pin_ow_moder_bit--;
     oneWirePins.pin_ow_moder_bit*=2;
 
-#if OW_USE_2_WIRE == 1
-    oneWirePins.pin_ow_in = GPIO_Pin_in;
-#endif // OW_USE_2_WIRE
-
     setPinOut();
     OW_SET_HI;
     *(oneWireDrv.ROM_NO) = (uint32_t)0;
     *(oneWireDrv.ROM_NO+4) = (uint32_t)0;
-   // delay_us_long(120);
 }
 
 
@@ -368,11 +301,7 @@ uint8_t owSearch() {
                     oneWireDrv.ROM_NO[rom_byte_number] &= ~rom_byte_mask;
 
                 // serial number search direction write bit
-#ifdef OW_USE_TICKS
                 owWriteBit(&search_direction);
-#else
-                owWriteBit(search_direction);
-#endif
                 // increment the byte counter id_bit_number
                 // and shift the mask rom_byte_mask
                 id_bit_number++;
@@ -529,46 +458,19 @@ uint8_t owCrc8(uint8_t value) {
   */
 uint8_t __attribute__((optimize("O3"))) owReset(void) {
     uint8_t state;
-#ifdef OW_USE_TICKS
     OW_GPIO_PULSE(OW_RESET_MEASTER, 0, MCU_FREQUENCY, 1,  oneWirePins.port, oneWirePins.pin_ow);
 
     OW_SET_HI;
 	setPinIn();
 	OW_DELAY_US(OW_RESET_PRESENCE, MCU_FREQUENCY, 1); //TODO set offset
 
-#if OW_USE_2_WIRE == 1
-	state = (oneWirePins.port->IDR & oneWirePins.pin_ow_in ) != 0;
-#else
 	state = (oneWirePins.port->IDR & oneWirePins.pin_ow ) != 0;
-#endif //OW_USE_2_WIRE
 
 	//setPinOut();
 	OW_DELAY_US(OW_RESET_DELAY, MCU_FREQUENCY, 40); //TODO set offset
 	setPinOut(); //Toto som presunul až za oneskorenie, pretože to spôsobovalo nechcené pulzy
 
 	return !state;
-#else
-    OW_SET_LO;
-	delay_us_long(OW_RESET_MEASTER/4);
-	OW_SET_HI;
-
-	setPinIn();
-	delay_us(OW_RESET_PRESENCE);
-
-#if OW_USE_2_WIRE == 1
-	state = (oneWirePins.port->IDR & oneWirePins.pin_ow_in ) != 0 ? 1:0;
-#else
-	state = (oneWirePins.port->IDR & oneWirePins.pin_ow ) != 0 ? 1:0;
-#endif //OW_USE_2_WIRE
-
-	setPinOut();
-	delay_us_long(OW_RESET_DELAY/4);
-
-	if(state == GPIO_PIN_SET)
-		return FALSE;
-	else
-		return TRUE;
-#endif
 }
 
 /**
@@ -579,7 +481,6 @@ uint8_t __attribute__((optimize("O3"))) owReset(void) {
   * @arg OW_STRONG_ON zbernica bude v stave STRONG
   * @retval : none
   */
-#ifdef OW_USE_TICKS
 void __attribute__((optimize("O1"))) owWriteByte(uint8_t byte_value, uint8_t strong) {
 	owWriteBit(&byte_value);
 	owWriteBit(&byte_value);
@@ -621,35 +522,12 @@ void __attribute__((optimize("O1"))) owWriteByte(uint8_t byte_value, uint8_t str
 	}
 #endif
 }
-#else
-void owWriteByte(uint8_t byte_value, uint8_t strong) {
-	//    HAL_SuspendTick();
-		owWriteBit(byte_value);
-	    owWriteBit(byte_value>>1);
-	    owWriteBit(byte_value>>2);
-	    owWriteBit(byte_value>>3);
-	    owWriteBit(byte_value>>4);
-	    owWriteBit(byte_value>>5);
-	    owWriteBit(byte_value>>6);
-	#if USE_STRONG == 1
-	    if(strong == OW_STRONG_ON){
-	    	owWriteBitStrong(byte_value>>7);
-	    }else{
-	    	owWriteBit(byte_value>>7);
-	    }
-	#else
-	    owWriteBit(byte_value>>7);
-	//    HAL_ResumeTick();
-	#endif
-}
-#endif
 
 /**
 * Na zbernicu 1-wire zapíše 1 bit. Po zápise nastaví zbernicu
 * do stavu STRONG.
 * @param bit_value - bit, ktorý sa bude zapisovať.
 */
-#ifdef OW_USE_TICKS
 void owWriteBitStrong(uint8_t bit_value) {
 	if(bit_value & 0x01){
 		// zapis bit=1
@@ -662,24 +540,6 @@ void owWriteBitStrong(uint8_t bit_value) {
 		//TODO offset je stanovený od oka v tomto prípade
 	}
 }
-#else
-void owWriteBitStrong(uint8_t bit_value) {
-	OW_SET_LO;
-	switch(bit_value & 0x01) {
-	case 0x00:
-		// zapis bit=0
-		delay_us(OW_WRITE_ZERO);
-		break;
-
-	case 0x01:
-		// zapis bit=1
-		delay_us(OW_WRITE_ONE);
-		break;
-	}
-	ow_SetReadState();
-	//    OW_STRONG_SET;
-}
-#endif
 
 
 /**
@@ -687,7 +547,6 @@ void owWriteBitStrong(uint8_t bit_value) {
   * @param    data, akceptovany je LSB
   * @retval : none
   */
-#ifdef OW_USE_TICKS
 void __attribute__((optimize("Ofast"))) owWriteBit(uint8_t* bit_value) {
 	if(*bit_value & 0x01){
 		// zapis bit=1
@@ -703,31 +562,6 @@ void __attribute__((optimize("Ofast"))) owWriteBit(uint8_t* bit_value) {
 	}
 	*bit_value >>= 1;
 }
-#else
-void owWriteBit(uint8_t bit_value) {
-    OW_SET_LO;
-    //uint32_t prim = __get_PRIMASK();
-    //__disable_irq();
-
-    if(bit_value & 0x01) {
-        // zapis bit=1
-        delay_us(OW_WRITE_ONE);
-        OW_SET_HI;
-        delay_us(OW_WRITE_ONE_DELAY);
-    }else{
-        // zapis bit=0
-        delay_us(OW_WRITE_ZERO);
-        OW_SET_HI;
-    }
-
-
-    delay_us(OW_WRITE_DELAY);
-    //    if (!prim) {
-    //    __enable_irq();
-    //}
-}
-#endif
-
 
 
 /**
@@ -736,12 +570,7 @@ void owWriteBit(uint8_t bit_value) {
   * @retval : nacitana hodnota 0/1
   */
 uint8_t owReadBit(void) {
-#ifdef OW_USE_TICKS
-	//uint32_t prim = __get_PRIMASK();
-	//__disable_irq();
-	//HAL_SuspendTick();
 	uint8_t state=0x00;
-
 	OW_GPIO_PULSE(OW_READ_PULSE, 0, MCU_FREQUENCY, 7,  oneWirePins.port, oneWirePins.pin_ow); //TODO set offset
 
 	//OW_SET_HI;
@@ -749,58 +578,15 @@ uint8_t owReadBit(void) {
 	OW_SET_HI; //Toto som presunul až za oneskorenie, pretože to spôsobovalo nechcené pulzy
 	OW_DELAY_US(OW_READ_PRESENCE, MCU_FREQUENCY, 1); //TODO set offset
 
-#if OW_USE_2_WIRE == 1
-	state = (oneWirePins.port->IDR & oneWirePins.pin_ow_in ) != 0;
-#else
 	state = (oneWirePins.port->IDR & oneWirePins.pin_ow ) != 0;
-#endif //OW_USE_2_WIRE
 
 	//setPinOut();
 	//OW_SET_HI;
 	OW_DELAY_US(OW_READ_DELAY, MCU_FREQUENCY, 1); //TODO set offset
 	setPinOut(); //Toto som presunul až za oneskorenie, pretože to spôsobovalo nechcené pulzy
 	OW_DELAY_US(OW_BOOSTER, MCU_FREQUENCY, 36); //TODO set offset
-	/*
-	if (!prim) {
-		__enable_irq();
-	}
-	*/
-//    HAL_ResumeTick();
-	return state;
-
-#else
-	//uint32_t prim = __get_PRIMASK();
-	//__disable_irq();
-	//HAL_SuspendTick();
-	uint8_t state=0x00;
-
-
-	OW_SET_LO;
-	delay_us(OW_READ_PULSE);
-
-	OW_SET_HI;
-	setPinIn();
-	delay_us(OW_READ_PRESENCE);
 
-#if OW_USE_2_WIRE == 1
-	state = (oneWirePins.port->IDR & oneWirePins.pin_ow_in ) != 0 ? 1:0;
-#else
-	state = (oneWirePins.port->IDR & oneWirePins.pin_ow ) != 0 ? 1:0;
-#endif //OW_USE_2_WIRE
-
-	setPinOut();
-	OW_SET_HI;
-	delay_us(OW_READ_DELAY);
-	delay_us(OW_BOOSTER);
-	/*
-	if (!prim) {
-		__enable_irq();
-	}
-	*/
-//    HAL_ResumeTick();
 	return state;
-#endif
-
 }
 
 /**