Не работает схема, не горят светодиоды

пытаюсь вывести букву А на матрицу, но по непонятным причинам не удается. помогите пожалуйста

enum { SER, RCLK, SRCLK };
const uint8_t colRegPins[] = { 11, 12, 13 };
const uint8_t rowRegPins[] = { 2, 3, 4 };

void initReg(const uint8_t* pins)
{
    pinMode(pins[SER], OUTPUT);
    pinMode(pins[RCLK], OUTPUT);
    pinMode(pins[SRCLK], OUTPUT);
}

void setReg(const uint8_t* pins, uint8_t bits)
{
    digitalWrite(pins[RCLK], LOW);
    shiftOut(pins[SER], pins[SRCLK], MSBFIRST, bits);
    digitalWrite(pins[RCLK], HIGH);
}

void setup()
{
    initReg(colRegPins);
    initReg(rowRegPins);

    cli();
    TCCR2A = 0;
    TCCR2B = 0;
    TIMSK2 = 1 << TOIE2;
    TCCR2B = 1 << CS22 | 1 << CS21; // prescaler = 128
    sei();
}

const uint8_t chars[] PROGMEM = {
  B00110000,
  B01111000,
  B11001100,
  B11001100,
  B11111100,
  B11001100,
  B11001100,
  B00000000,
};

uint8_t activeRow = 0;
uint8_t prevColBits = 0;
uint8_t videoMemory[8] = { 0 };

void drawChar(uint8_t ch)
{
    for (uint8_t i = 0, chIdx = ch * 8; i < 8; ++i)
    {
        videoMemory[i] = pgm_read_byte(chars + chIdx + i);
    }
}

int letterNum = 0;

void loop()
{
    drawChar(letterNum);
    delay(3000);
    letterNum = ++letterNum % 26;
}


ISR(TIMER2_OVF_vect)
{
    uint8_t colBits = videoMemory[activeRow];
    uint8_t rowBits = ~(1 << activeRow);

    if (colBits == prevColBits)
    {
        setReg(rowRegPins, rowBits);
    }
    else
    {
        setReg(colRegPins, 0);
        setReg(rowRegPins, rowBits);
        setReg(colRegPins, colBits);
        prevColBits = colBits;
    }

    for (int8_t i = 0; i < 8; ++i)
    {
        activeRow = ++activeRow % 8;

        if (videoMemory[activeRow] != 0)
            break;
    }
}

Хоть что то выводится ?

Нет, вообще нет никакой реакции

Всё не посмотрел, но сразу в глаза бросилось не соответствие с рисунком

помогло,спасибо
я слепой

Тогда какая Вам разница, горят светодиоды или нет?

2 лайка

руки греть

1 лайк

А я рад когда у меня не горят светодиоды. А то если сгорят, придется новые искать)