De Wikidroids

Return to Aversive/Modules

The modules/base subdirectory contains common modules which are frequently used by other modules or by projects.


Module utils

The 'utils' module provides a lot of usefull macros that makes development easier : for example, IRQ_LOCK and IRQ_UNLOCK macros that allow to stack several interrupt locks. This module is needed by huh... all other modules. So don't hesitate to activate it :)

Module wait

The 'wait' module provides simple delay functions. It is a _very_ simple module, as it is only active loops. The number of loop is calibrated with the quartz value. So if you have interruptions enabled, these functions won't be precise.

Module list

The 'list' module provides simple list functions. It is needed for lots of modules, such as communication modules that stores their xmit/recv buffer in this kind of list. These lists are not linked lists but they are implemented in a table, so the size is fixed at compilation time).

Directory math

This directory contains some math libraries.

The first one is base/math/vect2, which provides functions and data structures to handle 2 dimensionals vectors in both cartesian and polar coordinates.

The second is base/math/fixed_point, that provides operations on fixed point numbers.

Module scheduler

This module uses a timer interruption to schedule periodical or single tasks. This module is NOT a scheduler in the same way than in a multitask kernel. Each event can have a priority, and some events can preempt the ones that have a lower priority.

Module time

This module uses the scheduler to provide a reference time in seconds.

Boîte à outils