#include #include #include #include #include #include #include #include #include #include "max7219.h" #define wait nanosleep(&cl,NULL) const struct timespec cl={0,10}; /* * _sendpacket(d) * sends a 16 bit packet to the data line. * for internal usage only. */ void _sendpacket(unsigned short d) { unsigned char i; for(i=16;i>0;--i) { unsigned short mask=1<<(i-1); digitalWrite(P_CLK,0);wait; digitalWrite(P_DATA,(d&mask)?1:0); wait;digitalWrite(P_CLK,1);wait; } } /* * max7219_send(r,d,chip) * sets the value of register #d in chip #chip to d. * chips are 0-indexed. chip=-1 means send to all chips. */ void max7219_send(unsigned char r,unsigned char d,int chip) { digitalWrite(P_CS,0);wait; for(int i=0;i