Hello
I have a stupid question.
Here is my function which work fine...
txInterval(1544476926);
bool txInterval(int32_t &lastTx)
{
int32_t nextTx = lastTx + (int32_t)TX_INTERVAL;
int32_t unix_t;
DateTime t = rtc.now();
//Serial.println(now.unixtime());
unix_t = t.unixtime();
Si.sprint(unix_t,2);
Si.sprint(F(" - "),2);
Si.sprintln(nextTx,2);
if(unix_t > nextTx)
{
return true;
}
else
{
return false;
}
}
Do I need to add the '&' here, as I am only passing a value but I use the get a result of a value?
bool txInterval(int32_t &lastTx)
I have asking this question because one I use a fncton similar to this one
int32_t ResistanceInput = 1223;
int16_t CTemperatureInput =23;
int16_t swp;
kPaCalc(ResistanceInput, CTemperatureInput, swp)
Serial.println(swp);
void kPaCalc(int32_t ResistanceInput, int16_t CTemperatureInput, int16_t &swp2){
swp2=0;
float ResistanceCompensated = ResistanceInput *(1 + 0.001*((CTemperatureInput * 1.8 + 32)-75));
Si.sprint(F("WRM2: "),2); Si.sprint((int16_t)ResistanceCompensated,2); Si.sprint(F(" Ohm"),2);
if (ResistanceCompensated <= SWPkPAarray[0]) { // Minimum value
//Serial.print(F("swp2a:")); Serial.println(swp2);
}
if (ResistanceCompensated >= SWPkPAarray[16]) { // Maximum value
swp2 = SWPkPAarray[16+1];
//Serial.print(F("swp2b:")); Serial.println(swp2);
}
//for (int i=0; i<SWPkPAarray.length-2; i=i+2) {
for (int i=0; i<16; i=i+2) {
if ((ResistanceCompensated >= SWPkPAarray[i]) && (ResistanceCompensated <= SWPkPAarray[i+2])) {
//swp2 = SWPkPAarray[i+1] - ((SWPkPAarray[i+1]-SWPkPAarray[i+3]) * ((ResistanceInput-SWPkPAarray[i]) / (SWPkPAarray[i+2]-SWPkPAarray[i])));
swp2 = SWPkPAarray[i+1] - ((SWPkPAarray[i+1]-SWPkPAarray[i+3]) * ((ResistanceCompensated -SWPkPAarray[i]) / (SWPkPAarray[i+2]-SWPkPAarray[i])));
break;
}
}
}
In the above code, if I missed the & of '&swp2', my print was uncorrect
Then, as I am only passing a value, I wonder if this is better
bool txInterval(int32_t lastTx)
than
bool txInterval(int32_t &lastTx)
or if it's the same
[...]
Thank