It may be adapted to any size physical and virtual display with any LCD controller and CPU.
- Any 16/32-bit CPU; only an ANSI "C" compiler is required (Size of type 'char' needs to be 8 bits).
- Any (monochrome, grayscale or color) LCD with any controller supported (if the right driver is available).
- May work without LCD controller on smaller displays.
- PC tool emWinView for a detailed (magnified) view of all layers in the simulation.
- Any interface supported using configuration macros.
- Display-size configurable.
- Characters and bitmaps may be written at any point on the LCD, not just on even-numbered byte addresses.
- Routines are optimized for both size and speed.
- Compile time switches allow for different optimizations.
- For slower LCD controllers, LCD can be cached in memory, reducing access to a minimum and resulting in very high speed.
- Clear structure.
- Virtual display support; the virtual display can be larger than the actual display.
Software structure & components
Optional widgets for PC look and feel
Touch screen & mouse support
Memory device contexts
The Drivers (Layer 1)
Multilayer / multi display support
emWin Windows simulation using Microsoft Visual C++
Touch screen simulation
Available PC Tools
- Simulation plus viewer.
- Bitmap converter.
- Font converter.
emWin Starterkits"Ready-to-go" starterkits allow you to work on real hardware and get familiar with emWin as well as with the microcontroller and other development tools.
emWin samplesA lot of samples "C" code are provided to demonstrate the emWin features and can also be used by customers in similar applications.
Graphics library (GUI)
- Bitmaps of different color depths supported.
- Bitmap converter included.
- Absolutely no floating-point usage.
- Fast line/point drawing (without floating-point usage).
- Very fast drawing of circles/polygons.
- Different drawing modes.
- Variety of Fonts included.
- Touch-screen and Mouse support included.
- Simulation included.
All LCDs can be supported
Drivers can be written for all types of LCDs, including monochrome, gray scale passive and active color(TFT) displays. LCD drivers for all common LCDs already exist.
List of supported display controllers
- A variety of different fonts are shipped with the basic software: 4*6, 6*8, 6*9, 8*8, 8*9, 8*16, 8*17, 8*18, 24*32, and proportional fonts with pixel-heights of 8, 10, 13, 16.
- New fonts can be defined and simply linked in.
- Only the fonts used by the application are actually linked to the resulting executable, resulting in minimum ROM usage.
- Fonts are fully scalable, separately in X and Y.
- Font converter available; any font available on your host system (i.e. Microsoft Windows) can be converted.
Small memory footprint
emWin has been designed to have a memory footprint as small as possible. Various configuration switches allow tailoring the software to perfectly match your needs, reducing memory consumption to a minimum. The memory requirements vary depending on which parts of the software are used and how efficient your target compiler is. It is therefore not possible to specify precise values, but the following applies to typical systems:
Small systems (no window manager)
- RAM: Starting at 334 Bytes
- Stack: Starting at 600 Bytes
- ROM: Starting at 6 KBytes (depending on the functionality used)
Big systems (incl. window manager and widgets)
- RAM: Starting at 2 KBytes (depending on number of windows required)
- Stack: Starting at 2 KBytes
- ROM: Starting at 30 KBytes (depending on the functionality used)
Layer 4: Window manager
Layer 3: Widget library
Layer 2: Graphic library
Layer 1: LCD Driver(s)