strict warning: Only variables should be passed by reference in /homepages/26/d141797381/htdocs/drupal-6.38/sites/all/modules/webfm/webfm.module on line 2409.

FLSCMaster Program Details

The project source code is a sample C programming language implementation of an embedded master based on a mcu with a small memory model without threading or multi-tasking.  The purpose of the application is to provide example code for embedded engineers who wish to build customized servo control systems using the FLSC module.  In particular I wanted the project to provide a realistic limit detection regime, an important part of almost all automated mechanical systems.  I crafted the sequence of limits in a way that I think will be easy for users to modify for their own particular arrangement.  The finer details of the program are documented by the internal comments within the code itself.

The program controls only one FLSC module and thus does not demonstrate coordinated multi axis motion.  In short, such coordination is easily achieved by the simply addressing the motion control functions to the respective slave addresses.  What is less simple is the requirement for the master to compute the trajectory for each axis to produce coordinated motion.  These computations are outside the scope of this demo project.

Not every feature of the FLSC is exercised by the program, notably the fuzzy controls, however the low level driver (flsc_l.c) is completely implemented.  Addition of missing functionality is a matter of writing high level driver functions to the unused portions of flsc_l.c.

Tuning of the fuzzy rules, memberhip functions and output singleton for the FLSC module  is currently only possible through the use of the USB to CAN Gateway in combination with the test application.  Once the tuning process with the gateway-test app is complete, the fuzzy control settings can be saved to the filesystem of the FLSC module so that the embedded system will not need to consider the fuzzy control features.

The addition of the LCD and scroll buttons was intended to provide program feedback and debug info via the ASSERT macro.  I could have used the serial port to dump such information but unfortuately the SerMon monitor program has control of the SCI interrupt which makes the construction of a proper interrupt driven serial driver impossible.  I have refactored SerMon to address this issue but it isn't obviously an official version.  The demo works with the stock version of SerMon.  If anyone wants my version I'll send them the CW project.  You will need pod hardware to replace/update SerMon.

The source will compile with the Imagecraft compiler if the preprocessor define that sets the compiler in the all.h file is altered, however, that compiler is not free for the size of the output binary.  If the output were to grow beyond the 32K limit of CodeWarrior's Special Edition, the Imagecraft compiler becomes the less expensive tool, even with the addition of the NoICE debugger and debug pod hardware.  If anyone wants to contribute a GNU port I'll gladly link to it.