Segger Logo Embedded Software Solutions
Software productsHardware productsDownloadsPricesCustomersOur PartnersSitemapForumAbout us
emWin: Graphics software (GUI) for b/w, gray scale and color LCDs
| Samples | Simulation | Font Converter | Bitmap Converter | Memory devices | Window Manager | Widgets | Dialogs | Multiple Layer/Displays | VNC Support | Touch Screen | Antialiasing | Drivers | Starter Boards | Virtual Screen Support | emWin Applications | PC Evaluation Versions |

emWin is designed to provide an efficient, processor- and LCD controller-independent graphical user interface (GUI) for any application that operates with a graphical LCD. It is compatible with single-task and multitask environments, with a proprietary operating system or with any commercial RTOS. emWin is shipped as "C" source code. It may be adapted to any size physical and virtual display with any LCD controller and CPU. Its features include the following:

General

  • Any 8/16/32-bit CPU; only an ANSI "C" compiler is required.
  • Any (monochrome, grayscale or color) LCD with any controller supported (if the right driver is available).
  • May work without LCD controller on smaller displays.
  • 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.

Window Manager

  • Complete window management including clipping. Overwriting of areas outside a window's client area is impossible.
  • Windows can be moved and resized.
  • Callback routines supported (usage optional).
  • WM uses minimum RAM (app. 20 bytes per window).

The Drivers (Layer1)

A display driver supports a particular family of display controllers (typically LCD controllers) and all displays which are connected to one or more of these controllers. The driver is essentially generic, meaning it can be configured by modifying the configuration file LCDConf.h. The driver itself does not need to be modified. This file contains all configurable options for the driver including how the hardware is accessed and how the controller(s) are connected to the display.

Configurable options include the following:

LCD_XSIZE horizontal resolution
LCD_YSIZE vertical resolution
LCD_XORG horizontal position on the logical screen
LCD_YORG vertical position on the logical screen
LCD_MIRROR_X mirrors horizontal axis if activated
LCD_MIRROR_Y mirrors vertical axis if activated
LCD_SWAP_XY swaps x/y axes

PC tools

Optional widgets for PC look and feel

  • Widgets (window objects, also known as controls) are available. They generally operate automatically and are simple to use.

Memory device contexts available

Memory device contexts allow creation of a section to output to the display in the memory of the CPU. All drawing operations can be used. When the image has been build completely, it is transferred to the display in a single operation, allowing flicker free updates even with slow CPUs or slow displays.

Multi layer/multi display support

More and more graphic controller manufacturer (Fujitsu/Toshiba) offer a flexible layer concept. The multiple layer/multiple display feature allows you to access more than one layer. It also allows you to use multiple displays in your embedded application. This feature is not part of the basic package. You do need additional software to use the multi layer support. Right now up to 5 layers/displays can be supported.
For more information click here.

VNC support

VNC stands for "Virtual Network Computing". It is, in essence, a client server system based on a simple display protocol which allows the user to view a computing 'desk- top' environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures. Client and server communicate via TCP/IP. emWin VNC support is available as a separate package.

Windows simulation using Microsoft Visual C++

A simulation environment under MSVC++ is available. It can be used to write and test the entire user-interface on the PC (all routines are 100% identical to your embedded application, no matter what CPU or LCD you are using). This makes debugging and development easy and convenient. Generating screen-shots of the LCD is a snap. These screenshots can then be inserted into documentation. emWinView, a separate program shows the contents of the simulated LCD even during debugging.

Touch screen simulation

The touch screen simulation is integrated into the regular emWin simulation. Mouse events are used to simulate the touch screen. The simulation can be used to write the user interface of your application and can be send as a simple exe file to anybody for discussion, demonstration or verification.

Application note

Using the MCU/CPU as LCD controller

Touch screen support

Touch screen support for analog touch panels is available. This includes a low level driver,which handles the analog input (from an 8 bit or better AD-converter), debouncing and calibration of the touch screen. The window manager deals with touch messages and widgets such as button objects. It takes no more than one line of code to create a button or another widget, which then automatically handles touch messages and reacts accordingly.

Touch-screen & mouse support

  • For window objects such as the button widget, emWin offers touch-screen and mouse support.

Samples

A lot of samples "C" code are provided to demonstrate the emWin features. and can also be used by customers in similar applications.

Antialiasing

Antialiasing is the smoothing of lines and curves. It reduces the jagged, stair-step appearance of any line that is not exactly horizontal or vertical. emWin supports dif- ferent antialiasing qualities, antialiased fonts and high-resolution coordinates. It is an optional package.

Dialogs

A dialog box (or dialog) is normally a window that appears in order to request input from the user. This widget is included in the Window Manager/Widget package which is optional.

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.

Copyright SEGGER Microcontroller GmbH & Co.KG. All rights reserved.
For more information, please visit our web site www.segger.com or contact us at info@segger.com
Last update: December 7, 2007