Exemplo n.º 1
0
float decodeCanSignal(CanSignal* signal, uint64_t data) {
    uint64_t rawValue = getBitField(data, signal->bitPosition,
                                    signal->bitSize);
    if(signal->twosComplement) {
        return getTwosComplement(rawValue, signal->bitSize) * signal->factor + signal->offset;
    }
    return rawValue * signal->factor + signal->offset;
}
Exemplo n.º 2
0
void ShiftRegister595::refresh() {
        DigitRenderer::refresh();
        
        unsigned char bitField = getBitField();
        
        shiftOut(dataPin, clockPin, LSBFIRST, bitField);
        
        // The last digit in the chain is responsible for latch the output buffers
        if (lastDigit) {
          digitalWrite(strobePin, HIGH);
          digitalWrite(strobePin, LOW);
        }
}