don't know. Could be that one the colorStep values is not what you expected. for example, what do you think th value of b is when `colorStep is 256 (> 255)
should the colorStep loops not use a value of 256?
do this (255-0)
for( int colorStep=255; colorStep >= 0; colorStep--)
instead of (256-1)
for( int colorStep=256; colorStep>0; colorStep--)