/* * powerEngined.h * * Created on: Jan 26, 2015 * Author: aras */ #ifndef POWERENGINED_POWERENGINED_H_ #define POWERENGINED_POWERENGINED_H_ #include /* primitivas 1-wire transaction ds2438 . toda data/comandos es leida y escrita * primero el bit menos significativo */ inline void write_0_signal();//pull-low, wait 15us, remain low 45us (min), release (high),wait 1us inline void write_1_signal();//pull-low, wait 10us, release (high) 50us (min), remain high,wait 1us inline void write_byte(uint8_t byte); void write_bytes(uint8_t* pbytes,uint8_t len); inline uint8_t read_signal();//pull-low, wait 1us, release, pin I , wait 9us, read line, //wait 50us(min), pin O, wait 1us inline uint8_t read_byte(); void read_bytes(uint8_t* pbytes, uint8_t len); // 1 reset pulse trasmition (maestro) // low signal for a minimum of 480us. luego del flanco de subida, // espera de 15-60us y recibe el pulso de presencia del ds2438 // (low 60-240us) // 2 presence pulse (respuesta del esclavo) void initialization(); // 5 CONVERT_T (0x44) inicia conversion A/D de temperatura // 6 CONVERT_V (0xB4) inicia conversion A/D de voltaje void convert(uint8_t cmd); void memory_read(uint8_t* pbyte, uint8_t page_addr); void ISR_int0(); //usado para cronometrar la lectura del presence pulse void ISR_low_level();//detecta el nivel bajo. usado para detectar el presence pulse void ISR_twi();// usado para enviar datos void ISR_int1();//usado para cronometrar la lectura de datos #endif /* POWERENGINED_POWERENGINED_H_ */