Without your hardware in front of me…
Is it possible you’re writing outside the display, or overflowing some other buffer ?
Maybe shrink the for loops by some, and see if the error still happens.
As you’ve discovered, this is a runtime error, not a compilation error, so it’s something dynamic that is changed while the code is running.
Most often a type overflow, or running out of bounds off a finite storage area.
This message means that the watchdog timer has been triggered. This happens when your code takes too long to finish executing loop(). However, adding yield() should fix this, if done correctly, because yield() "pats the dog" to reassure it that your code has not got stuck in an infinite loop somewhere.
@PaulRB Thank you for reply … I used yield(); but still the issue persist ...form the above code if i removed the line dmd.drawString(i, 2, MESSAGE1); then the for loop prints all values without any serial error... also i tried by putting yield(); inside the library code ...not worked..
The other 2 directions have a delay() but the third has only a yield(). Do the other scroll directions work ok? What if you put delay(200) for all of them?
@PaulRB yes they work fine ...the issue is with only last for loop.. in this after some time the issue is repeated. if i put delay longer it will scroll slowly. there is no effect of delay in last loop.
@PaulRB yes ... when i searched the issue and tried to resolve it by disabling the wdt still hardware wdt timmer resets the loop..i also tried using the interrupts...not worked.... do you have any idea why it is happening?