Я пытаюсь использовать Pi для управления светодиодной матрицей. Я уже сделал то же самое на Arduino Uno. Я новичок в Python и мне нужна помощь с преобразованием следующего кода Arduino для работы с Python:
byte RGB = 0b00000000;
uint64_t rowR[16]
uint64_t temp;
uint8_t i;
int row = 0;
void setup(){
temp = 0x0000000000000001;
rowR[0] = 0XFA24D2241F701070;
rowR[1] = 0X122472271070DF70;
rowR[2] = 0X1324000010480000;
rowR[3] = 0X13240000104C0000;
rowR[4] = 0X12A400001E440000;
rowR[5] = 0X12A4000010440000;
rowR[6] = 0X12640000104C0000;
rowR[7] = 0X9264000010480000;
rowR[8] = 0XFA24D2241F701070;
rowR[9] = 0X122472271070DF70;
rowR[10] = 0X1324000010480000;
rowR[11] = 0X13240000104C0000;
rowR[12] = 0X12A400001E440000;
rowR[13] = 0X12A4000010440000;
rowR[14] = 0X12640000104C0000;
rowR[15] = 0X9264000010480000;
}
void loop(){
for (row = 0; row < 8; row++)
{
for (i = 0; i < 64; i++)
{
RGB = ((!!(rowR[row] & (temp << (63 - i)))) << (2)) /*pin2*/
| ((!!(rowG[row] & (temp << (63 - i)))) << (3)) /*pin3*/
| ((!!(rowB[row] & (temp << (63 - i)))) << (4)) /*pin4*/
| ((!!(rowR[row + 8] & (temp << (63 - i)))) << (5)) /*pin5*/
| ((!!(rowG[row + 8] & (temp << (63 - i)))) << (6)) /*pin6*/
| ((!!(rowB[row + 8] & (temp << (63 - i)))) << (7)); /*pin7*/
PORTD = RGB; //writing to pins 0-7
}
}
Это, очевидно, не полный код, но это область, в которой я запутался. Я пытаюсь преобразовать эту систему для работы на пи с ее выводами GPIO в основном для максимально возможной частоты обновления светодиодной матрицы.
Редактировать: Также есть более быстрый способ манипулирования выводами GPIO Raspberry Pi, чем с помощью "GPIO.output ()"