/* * Read GPIO serial value */ float getSerialData(int num_registers, char* result_string, float rule_height) { unsigned short int idx = 0, value_read = 0, pins_out_water = 0; float pins_mid_level = 0; clockUp(); loadRegisters(); //FIXME: Essa não é a forma correta de dar delay, muito ineficiente __delay_cycles( SLEEP_TIME); clockDown(); unloadRegisters(); for (idx = 0; idx < num_registers; idx++) { //FIXME: Essa não é a forma correta de dar delay, muito ineficiente __delay_cycles( SLEEP_TIME); value_read = readGpio(); pins_out_water += value_read; if (value_read) strcat(result_string, "1"); else strcat(result_string, "0"); clockUp(); //FIXME: Essa não é a forma correta de dar delay, muito ineficiente __delay_cycles( SLEEP_TIME); clockDown(); } pins_mid_level = (MID_LEVEL / RULE_SPACE_PIN); rule_height = ((num_registers - pins_out_water - pins_mid_level) * RULE_SPACE_PIN); return pins_mid_level; }
static void readRoutine(uint8_t num_regs, float* result){ turnOn(); clockUp(); loadRegisters(); //FIXME: add a delay here clockDown(); //FIXME: add a delay here unloadRegisters(); //TODO: code to read pins }
void Clock::runClock(){ // Serial.print("timer"); // Serial.print(" | "); // Serial.print(timer); // Serial.print("\r\n"); // Serial.print("clockType"); // Serial.print(" | "); // Serial.print(clockType); // Serial.print("\r\n"); // Serial.print("\r\n"); // Serial.print("\r\n"); readTempo(); //advance(); switch(clockType){ case 0: currentMillis = millis(); if(currentMillis - previousMillis >= interval) { clockUp(); advance(); notify(); // Serial.print("timerIN"); // Serial.print("\r\n"); // Serial.print(timer); // Serial.print("\r\n"); previousMillis = currentMillis; } break; case 1: // Serial.print("interval"); // Serial.print(" | "); // Serial.print(interval); // Serial.print("\r\n"); // Serial.print("clockType1"); // Serial.print(" | "); // Serial.print(clockType); // Serial.print("\r\n"); break; } }
static void clock(){ clockUp(); //FIXME: delay here clockDown(); }