TCL5940 и прерывание

dimOnOff
Offline
Зарегистрирован: 21.04.2015

Всех приветствую! 

Пытаюсь разобраться с прерыванием на драйвере светодиодов Tlc5940. Прерывание зажигает сразу все светодиоды с заданной яркостью. 

Суть проблемы: после "снятия" прерывания цикл продолжается как-то с артефактами. Т.е. вместо того ,чтобы просто продолжиться с места ,когда началось прерывание, еще появляется бегущий огонек по всем светодиодам. 


#include "Tlc5940.h"

int Leds = 8;
const int maxLight = 4095;
int delPWM = 10;
int stepPWM, stepPWMP;
byte intPin = 0;



void setup()
{
  attachInterrupt(intPin,pause,LOW); //функция прерывания
  Tlc.init();     
 }

void pause() {
  Tlc.setAll(4000);
  Tlc.update();
  Tlc.clear () ; 
  Tlc.update();
}
void loop()
{
  for (int i=Leds-1; i>=0; i--) {
    stepPWMP=1;
    for (int j=0; j<=maxLight; j=j+stepPWMP) {    
      Tlc.set(i,j);
      Tlc.update();
      delay(delPWM);
      stepPWMP+=2;
    }
  }
  
 for (int i=Leds-1; i>=0; i--) 
 {
   stepPWM=stepPWMP;
   for (int j=maxLight; j>=0; j=j-stepPWM) 
   {
     Tlc.set(i,j);
     Tlc.update();
     delay(delPWM);
     stepPWM-=2; 
    }
  }
}

dimOnOff
Offline
Зарегистрирован: 21.04.2015

Неужели никто не сталкивался с такой проблемой?