Bean Categories

Bean Selector Categories

Complete list of bean categories and corresponding beans can be found in the Bean Selector (main menu | View | Bean Selector) at the page "Bean Categories".

The categories are related to the bean's functionality and allow to quickly find appropriate bean for a desired function. There are the following four main categories containing many sub-categories.

  • CPU - all available CPU beans. The CPU folder in Bean Selector contains subfolders for the CPU families.
  • CPU External Devices - beans for devices externally controlled to the CPU. For example sensors, memories, displays or EVM equipment.
  • CPU Internal Peripherals - beans using any of on-chip peripherals offered by the CPU. The Bean Selector folder with the same name contains sub-folders for the specific groups of functionality. (i.e. Converters, Timers, PortIO etc.)

    Note: It seems that beans (especially in this category) correspond to on-chip peripherals. Even this declaration is close to the true, the main purpose of the bean is providing the same interface and functionality for all supported CPU derivatives. This portability is the reason why the bean interface often doesn't copy all features of the specific peripheral.

  • SW - beans encapsulating a pure software algorithms or inheriting a hardware-dependent beans for accessing peripherals. These beans (along with beans created by the user) can be found in a bean selector folder SW.

Specific functionality of the CPU derivative may be supported as a version-specific settings of the bean. For more about this feature please refer to Version specific in the bean documentation or Beans Implementation help chapter.

Levels of Abstraction

Processor Expert provides beans with a different level of abstraction and settings comfort.

  • High Level Beans - The beans that are the basic set of beans designed carefully to provide functionality of most microcontrollers on the market. An application built from these beans can be easily ported to another microcontroller supported by the Processor Expert. This basic set contains beans for simple I/O operations (BitIO, BitsIO, ByteIO, ...), timers (EventCounter, TimerInt, FreeCntr, TimerOut, PWM, PPG, Capture, WatchDog,...), communication (AsynchroSerial, SynchroMaster, SynchroSlave, AsynchroMaster, AsynchroSlave, IIC, ADC, internal memories, etc...).
    This group of beans allows comfortable settings of a desired functionality such as time in ms or frequency in Hz, the user doesn't have to know the details about hardware registers. CPU specific features are supported only as CPU specific settings or methods and are not portable. See chapter Version Specific for details.
    The beans inheriting or sharing a high level bean(s) to access hardware are also high level beans.
  • Low Level Beans - The beans that are dependent on the peripheral structure to allow the user to benefit from non-standard features of a peripheral. The level of portability is decreased due to a different bean interface and the bean is usually implemented only for a CPU family offering the appropriate peripheral. However, there is still implemented a comfortable settings of devices' features and effective set of methods and events.
  • Peripheral Initialization Beans - These beans are on the lowest level of abstraction. An interface of such beans is based on the set of peripheral control registers. These beans cover all features of the peripherals and were designed for initialization of these peripherals. Usually contain only "Init" method, see Typical Peripheral Initialization Beans Usage for further details). The rest of the function has to be implemented using a low level access to the peripheral. This kind of beans could be found in the "CPU Internal Peripherals / Peripheral Initialization Beans" folder of the Bean selector and they are available only for some CPU families. The interface of these beans might be different for a different CPU. The name of these beans starts with the prefix 'Init_'.

Table of the features of the different levels beans

Feature High level Low level Peripheral Init
High level settings portable between different CPU families yes partially no
Portable method interface for all CPU families yes partially
(usually direct access to control registers)
Init method only
CPU specific peripheral features support partially mostly yes full
Low level peripheral initialization settings no partially yes
Speed mode independent timing yes mostly yes no
Events support yes yes no
(direct interrupt handling)

 

 

[top of page]