初始化提交

This commit is contained in:
王立帮
2024-07-20 22:09:06 +08:00
commit c247dd07a6
6876 changed files with 2743096 additions and 0 deletions

View File

@@ -0,0 +1,113 @@
/*Max7219_digitalLED
数码管驱动
驱动使用
引脚连接: 数据线 DI: 时钟线 CLK: 片选线 CS:
1、调用begin(brightness)初始化参数brightness为亮度值0-15
2、调用displayDigital(int val)可显示一个整数。
调用displayDigital(float val)可显示浮点数(带小数点)。
调用displayDigital(long val)可显示长整型数。
调用displayDigital(int val, int digital)。可显示单个数位
3、调用clearDisplay()可清除数码管。
*/
#include "DuinoplusDigitalLED.h"
DigitalLED::DigitalLED(uint16_t pinCs, uint16_t pinData, uint16_t pinClk) : Max7219(pinCs, pinData, pinClk, 1)
{
CS = pinCs;
DI = pinData;
CLK = pinClk;
pinMode(CS, OUTPUT);
pinMode(DI, OUTPUT);
pinMode(CLK, OUTPUT);
}
void DigitalLED::begin(uint8_t brightness)
{
shutdown(false);
setIntensity(brightness); //亮度
clearDisplay();
}
void DigitalLED::displayDigital(int val)
{
int ones, tens, hundreds, thousands;
int tmp;
tmp = val;
ones = tmp % 10;
tens = (tmp / 10) % 10;
hundreds = (tmp / 100) % 10;
thousands = tmp / 1000;
clearDisplay();
setDigit(0, 0, ones, 0);
if (val >= 10)
{
setDigit(0, 1, tens, 0);
if (val >= 100)
{
setDigit(0, 2, hundreds, 0);
if (val >= 1000)
setDigit(0, 3, thousands, 0);
}
}
}
void DigitalLED::displayDigital(uint8_t val)
{
int temp;
temp = (int)val;
displayDigital(temp);
}
void DigitalLED::displayDigital(uint32_t val)
{
int temp;
temp = (int)val;
displayDigital(temp);
}
void DigitalLED::displayDigital(long val)
{
int temp;
temp = (int)val;
displayDigital(temp);
}
void DigitalLED::displayDigital(float val)
{
int ones, tens, hundreds, thousands;
int tmp;
boolean tensPoint = 0;
if (val > 0)
tensPoint = 1;
tmp = (int)(val * 10);
ones = tmp % 10;
tens = (tmp / 10) % 10;
hundreds = (tmp / 100) % 10;
thousands = tmp / 1000;
clearDisplay();
setDigit(0, 0, ones, 0);
setDigit(0, 1, tens, tensPoint);
if (val >= 10)
{
setDigit(0, 2, hundreds, 0);
if (val >= 100)
setDigit(0, 3, thousands, 0);
}
}
void DigitalLED::displayDigital(double val)
{
float temp;
temp = (float)val;
displayDigital(temp);
}
void DigitalLED::displayDigital(int num, int data, boolean point)
{
if (!(data < 0) || !(data > 9))
{
setDigit(0, num - 1, data, point);
}
}