This project is the prototype for a simple graphics (sprites) display for a process controller. The hardware is the standard X,Y crossbar selection scanning method and uses the textbook dot matrix transformations to move the objects around the screen. This has the main display code with echo back stubs instead of the real RS-232 light-link code functions. The CTMU module will provide the function and mode switching with small touch pads. (short wire coils are used here)
Nothing complex or new but here it is with a (work in progress) demo.
http://flic.kr/p/e51LFv
http://flic.kr/p/e6xFR2
Source code: https://github.com/nsaspook/matrix_led
The object (slowed to be easily visual) operations seen in the video.
Pixel X,Y,on/off,pixel_id,object_id defines for ROM object '0'.
The graphic objects are in a ROM section with each assigned a number for an ID handle. You can select the object to be copied into the display memory where the new memory object will be assigned a ID handle for any object movement operations.
Nothing complex or new but here it is with a (work in progress) demo.
http://flic.kr/p/e51LFv
http://flic.kr/p/e6xFR2
Source code: https://github.com/nsaspook/matrix_led
The object (slowed to be easily visual) operations seen in the video.
Pixel X,Y,on/off,pixel_id,object_id defines for ROM object '0'.
Rich (BB code):
#define ROT_SPEED 35 // The highest speed is 1
-1, -3, 1, 0, 0,
0, -2, 0, 1, 0,
1, -1, 1, 2, 0,
2, 0, 1, 3, 0,
-1, 0, 1, 4, 0,
1, 1, 1, 5, 0,
0, 2, 1, 6, 0,
-1, 3, 1, 7, 0,
-2, 0, 1, 8, 0,
obj_init(0, TRUE); // clear ram display memory
obj1 = obj_init(romid, FALSE); // return ID for rom object into ram id
object_scale(obj1, scaling, scaling); // big to small
object_rotate(obj1, rotation); // CW
object_trans(obj1, 3, 3); // move to near center