TCL5940 и прерывание
- Войдите на сайт для отправки комментариев
Сб, 30/05/2015 - 16:19
Всех приветствую!
Пытаюсь разобраться с прерыванием на драйвере светодиодов 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; } } }
Неужели никто не сталкивался с такой проблемой?