Simple control for ST M5451 LED driver.

Sample usage

#include "mbed.h"
#include "M5451.h"

M5451 m5451(D8, D7);

void toggleOneByOne(){
    for(char i = 0; i < m5451.outputs(); i++){
        m5451.toggleBit(i);
        m5451.update();
        wait_ms(250);
        m5451.toggleBit(i);
    }
}

int main() {
    while(1) {
        m5451.setAllBits(0);
        toggleOneByOne();
        m5451.setAllBits(1);
        toggleOneByOne();
    }
}

M5451.h

Committer:
jirrick
Date:
2020-03-01
Revision:
1:db1e69c22bc6
Parent:
0:b21b3517a1d6

File content as of revision 1:db1e69c22bc6:

#ifndef JIRRICK_M5451_H
#define JIRRICK_M5451_H
 
#include "mbed.h"

#define JIRRICK_M5451_WAIT      1
#define JIRRICK_M5451_OUTPUTS   35
 
class M5451 {
public:
    M5451(PinName dataPin, PinName clockPin);
    short outputs();
    void setState(uint64_t state);
    void setBit(short position, short value);
    void toggleBit(short position);
    void setAllBits(short value);
    void update();
    uint64_t getState();
  
private:  
    DigitalOut _dataPin;
    DigitalOut _clockPin;
    uint64_t _state;
    void _send(short bit);
};
 
#endif