charlieplex code 4x4x4 rgb arduino nano code

Good day all,

i'm new to this Arduino IDE. I don't know how to change the animation for my "charlieplex code 4x4x4".

only 1 type of animation after i loaded the code. I did not change any in the code.

This is the one I used.

https://codeload.github.com/AsherGlick/Charliecube/legacy.zip/master

The only animation in my cube

Your code uses interrupts. Variables that are changed in interrupt service routines (ISR) and are shared with normal 'code' should be declared volatile.

Search your cubeplex.h for ISR(TIMER1_OVF_vect) . You will find

int animationTimer = 0;
int animationMax = 0;

ISR(TIMER1_OVF_vect) {
  animationTimer++;
  if (animationTimer == animationMax) {
    continuePattern = false;
    animationTimer=0;
  }
}

Change the first two lines to

volatile int animationTimer = 0;
volatile int animationMax = 0;

Next find the declaration of continuePattern; the line looks like

bool continuePattern = false;

and change it to

volatile bool continuePattern = false;

Next search your code for ISR(TIMER2_OVF_vect). You will find

ISR(TIMER2_OVF_vect)
{
  ...
  ...
}

In there you will find

  if (count > pwmm){

count is a local variable and the declaration does not need to be changed. pwmm is not local and probably needs to be changed.

Find the line that contains the declaration of pwmm;

int pwmm = 0;

and change it to

volatile int pwmm = 0;

There are a few more lines that change variables that are declared outside the ISR. Also find the lines

_frame_light * _cube__frame;
_frame_light * _cube_current_frame;
char * _cube_buffer;

and change them to

volatile _frame_light * _cube__frame;
volatile _frame_light * _cube_current_frame;
volatile char * _cube_buffer;

Give that a shot; if it does not solve it, I do not know.