From 3f500c4aed2a20de29661ec851c214634c2fe3cf Mon Sep 17 00:00:00 2001 From: Alexey 'Cluster' Avdyukhin Date: Wed, 22 Jan 2014 22:12:17 +0400 Subject: Comments --- metacom.c | 4 ++-- onewire.c | 26 +++++++++++++------------- onewire_config.h | 2 ++ 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/metacom.c b/metacom.c index 55ad24c..a02aaf3 100644 --- a/metacom.c +++ b/metacom.c @@ -21,14 +21,14 @@ inline void metacom_send_byte(uint8_t data) ONEWIRE_WAIT(METACOM_T/3); // 0 ONEWIRE_MASTER_TX_ON; ONEWIRE_WAIT(METACOM_T*2/3); - // TX + // Тут не надо отпускать TX перед посылкой следующего пакета } } } void metacom_send(unsigned char* key) { - ONEWIRE_MASTER_TX(METACOM_T); // + ONEWIRE_MASTER_TX(METACOM_T); // Синхронизирующий бит ONEWIRE_WAIT(METACOM_T/3); // 0 ONEWIRE_MASTER_TX(METACOM_T*2/3); diff --git a/onewire.c b/onewire.c index 18a3a62..0d35fa4 100644 --- a/onewire.c +++ b/onewire.c @@ -17,7 +17,7 @@ void onewire_init() onewire_port_init(); } -// . 1, . +// Инициализирует передачу. Возвращает 1, если устройства ответили. char onewire_write_reset() { onewire_port_init(); @@ -38,7 +38,7 @@ char onewire_write_reset() return res; } -// 1 +// Читает 1 бит char onewire_read_bit() { onewire_port_init(); ONEWIRE_MASTER_TX(5); ONEWIRE_WAIT(5); @@ -57,7 +57,7 @@ char onewire_read_bit() return cbit; } -// +// Читает байт unsigned char onewire_read_byte() { unsigned char res, bit, cbit; @@ -86,7 +86,7 @@ void onewire_write_byte(unsigned char b) } } -// CRC +// Считает CRC char onewire_check_crc(unsigned char* data, unsigned char size) { uint8_t crc=0; @@ -107,7 +107,7 @@ char onewire_check_crc(unsigned char* data, unsigned char size) } -// ? +// В буфере только нули? char onewire_all_zeros(unsigned char* data, unsigned char size) { uint8_t i; @@ -118,9 +118,9 @@ char onewire_all_zeros(unsigned char* data, unsigned char size) return 1; } -/* -// , num - , , out - 8 -// - +#ifdef ONEWIRE_SEARCH_SUPPORT +// Поиск устройств, num - битовая маска, по которой идёт ветвление, out - указатель на 8 байт +// возвращает кол-во пройденных ветвений int onewire_search(unsigned int num, unsigned char* out) { char res = onewire_write_reset(); @@ -158,7 +158,7 @@ int onewire_search(unsigned int num, unsigned char* out) return conflicts; } -// +// Итерация поиска void onewire_search_iter(int num, int depth, void (*f)(unsigned char* out)) { unsigned char serial[8]; @@ -169,17 +169,17 @@ void onewire_search_iter(int num, int depth, void (*f)(unsigned char* out)) int d; for (d = depth+1; d < conflicts; d++) - onewire_search_iter(num | (1UL << d), d, f); // . + onewire_search_iter(num | (1UL << d), d, f); // углубляемся. } -// . f - , , out - 8 , CRC +// Ищет все устройства. f - указатель к функции, которая вызывается для каждого устройства, out - указатель на 8 байт адреса, включая тип и CRC void onewire_search_all(void (*f)(unsigned char* out)) { onewire_search_iter(0, -1, f); } -*/ +#endif -// VCC +// Включает мощную подтяжку к VCC void onewire_pullup() { if (ONEWIRE_MASTER_RX) return; diff --git a/onewire_config.h b/onewire_config.h index d223b24..326ee0a 100644 --- a/onewire_config.h +++ b/onewire_config.h @@ -13,4 +13,6 @@ #define ONEWIRE_TIMER_REG TCNT1 #define ONEWIRE_USEC (F_CPU / 8000000UL) +//#define ONEWIRE_SEARCH_SUPPORT + #endif -- cgit v1.2.3