TolpuddleSartre:
Posted here, for even better visibilityRadHand::RadHand(uint16_t deadTimeInput, uint16_t conversionFactor, uint32_t intervals[]){
deadTime = deadTimeInput;
convFactor = conversionFactor;
arrLen = sizeof(intervals)/sizeof(uint32_t);
for(uint8_t i=0; i<arrLen; i++ ){
timeInterval[i] = intervals[i];
lastConversion[i] = 0;
currentCPM[i] = 0;
progress[i] = 0;
updated[i] = false;
pulseCount[i] = 0;
}
totalPulseCount = 0;
arrLen = sizeof(intervals)/sizeof(uint32_t); 2/4 == 0
Yes, but its not allowed to pass values under uint32_t
in my case:
uint32_t intervals[] = {10000,30000,60000,120000,300000};
so sizeof would yield in 20 (i tested that), so i have to divide.
If i would pass only a uint8_t then there would be an error
I've modified the constructor to pass lenght:
RadHand::RadHand(uint16_t deadTimeInput, uint16_t conversionFactor, uint32_t intervals[],uint8_t arrayCount){
deadTime = deadTimeInput;
convFactor = conversionFactor;
arrLen = arrayCount;
for(uint8_t i=0; i<arrLen; i++ ){
timeInterval[i] = intervals[i];
lastConversion[i] = 0;
currentCPM[i] = 0;
progress[i] = 0;
updated[i] = false;
pulseCount[i] = 0;
}
totalPulseCount = 0;
}
Still no luck!
I've now even have hard-coded the lenght inside the constructor. There must be something wrong, because it still is 0.
I've updated the git if someone wants to have a look