Global Sources
EE Times-India
Stay in touch with EE Times India
 
EE Times-India > Processors/DSPs
 
 
Processors/DSPs  

ST92195 OSD enhanced features

Posted: 29 Nov 2004     Print Version  Bookmark and Share

Keywords:embedded 

PDF document

1/20AN1858/0904

AN1858

APPLICATION NOTE

ST92195 OSD

ENHANCED FEATURES

Rev. 2

1 INTRODUCTION

This application note is an extension of another document: "How to Manage the ST92195

OSD".

Additional features of the ST92195 OSD are presented in this note. They are the line mode

and the scrolling mode. These can be very useful if you want to design an OSD with good look-

ing special effects. Furthermore, the line mode can help you to save TDSRAM space when

designing menus.

This document provides software examples to help you to get to know how to use this powerful

OSD.

2 ST92195 OSD

2.1 Features overview

The OSD cell supports mainly two display modes: serial and parallel mode. Another sub mode

is the line mode. It can be used in either serial mode or parallel mode. Although these latest

modes use 920 bytes for display, the line mode uses only half this size and can address the

whole TV screen.

The scrolling mode allows you to build pop up menus and make them appear on the screen

scrolling. To do that, the OSD cell requires only one more row than display in standard mode.

Now let's see a summary of the other features listed in the data sheet:

2.1.1 Line Mode

To save memory resources, line mode can be useful for non Teletext specific menus. Line

mode allows to display up to 12 rows anywhere on the screen with only 0.5 Kbytes.

2.1.2 Scrolling mode

You can scroll the screen vertically top/down and bottom/up. You can also select the window

you want to scroll (with normal height characters), in parallel or serial mode. With double height

characters the scrolling window is actually the whole page (this is not treated here).

AN1858 - APPLICATION NOTE

2/20

3 LINE MODE

The line mode allows to display up to 12 rows wherever you want on the screen using minimum

memory. The 12 row block fills only 0.5K of memory space.

For example, if you want to display the volume control menu at the bottom of the screen using

only two rows, with line mode you use only 0.5 K to do so. In normal mode you would have

used one complete 1 Kbytes block to display only two rows!

3.1 Row attributes

Figure 1. Row Attributes array

An array describing the correspondence between rows location in the TDSRAM and on screen

has to be filled in a dedicated memory space (cf. figure above). The position in the "row at-

tributes array" corresponds to the row number in TDSRAM; the content of this pointer corre-

sponds to the row number actually displayed on the screen.

3.1.1 Line Mode Control Bit

This bit is bit 1 of register DCM1R (R251/FBh, page 20h). Set it to enable the Line mode. This

can be done using the function EnableDisplay.

Row 1

Row 11

0.5K TDSRAM

Row 12

Free Space

Row Attributes

Row 8

8th

position

20

Row 20

3/20

AN1858 - APPLICATION NOTE

3.2 Serial mode, line mode display

The 0.5K block of half page content is stored in the TDSRAM. The "row attribute" is stored at

offset 100h in the 0.5K block containing the Header, Status Row 0 and 1.

Figure 2. Serial line mode mapping

3.3 Parallel mode, line mode display

Its is done exactly in the same way, except that here you have the same "row attribute" for the

characters and for their attributes.

Figure 3. Parallel line mode mapping

Row 1

Row 11

0.5K TDSRAM

Row 12

Free Space

Header

0.5K TDSRAM

Free Space

Status Row 0

Status Row 1

Free Space

Row Attribute

100h

Row 1

Row 11

0.5K TDSRAM

Row 12

Free Space

Header Char

Status Row 0

Status Row 1

Free Space

Page 7

100h

Row 1

0.5K TDSRAM0.5K TDSRAM

Row 11

Row 12

Free Space

Header Attr.

Status Row 0

Status Row 1

Free Space

Row Attribute

Free Space

80h

AN1858 - APPLICATION NOTE

4/20

3.4 How to use the row attribute

Before enabling the display, attribute array (12 bytes) must be written to. This array, as de-

scribed in figure '"Row Attribute array", gives the relation between rows in TDSRAM and rows

on screen. There are some rules to respect writing this array. The first one is that when you

affect one TDSRAM row (let's call it RAM row) to an On Screen row (Screen Row). This

'Screen Row' must be lower (on the screen) than the one previously affected to the previous

RAM row.

For example: [ 1 4 5 8 20 21 ] is correct

[ 9 10 6 18 19 ] is not correct

Another simple rule is that you cannot affect two 'Ram rows' to the same 'Screen Row'.

For example: [ 1 2 2 3 4 5 6 ] is not correct

5/20

AN1858 - APPLICATION NOTE

4 SCROLLING MODE

This paragraph is dealing only with scrolling characters in normal height. Scrolling in global

double height is allowed only on the whole page.

Scrolling only concerns rows 1 to 23, not Header and Status rows. Two registers control the

scrolling mode:

- SCLR (F8h/248, page 20h) : Scrolling Control Low Register

- SCHR (F9h/249, page 20h) : Scrolling Control High Register

The scrolling mode allows a predefined set of rows to scroll on screen. As explained below,

when the scrolling mode is on, the perfect correspondence between "what you get in TD-

SRAM" and "what you see on the screen" ends.

4.1 Use of the scrolling registers

4.1.1 Row scrolling buffer

The row scrolling buffer is actually the 24th row of the selected TDSRAM page, and as such,

this row is not directly displayable. It is used to write the row to be scrolled before scrolling be-

gins. However, neither this row nor the 23 others directly displayable are changed when the

scrolling mode is set on.

Thus, the first thing to do is to write the line to be scrolled in the TDSRAM at this location.

Figure 4. Row scrolling buffer location

4.1.2 Scrolling registers

The rows to be scrolled are defined by the uppermost row value and the lowermost row value

to be scrolled. The uppermost row on the screen is loaded in the 5 LSB of register SCLR

(R248/F8h, page 20h), and the lowermost one is written in the 5 LSB of SCHR (R249/F9h,

page 20h).

The scrolling is vertical. You can select to perform it from the top of the screen to the bottom,

or the opposite. To do that, you have to respectively reset or set bit 5 (UP/D) of register SCHR.

Bits SCE (SCrolling Enable) and FSC (Freeze SCrolling) of SCLR (R248/F8h, page 20h) per-

mit to control the scrolling mode, as described paragraph 4.2.

Row 1

Free Space

Row 23

1K TDSRAM

Row Scrolling Buffer Row 24

AN1858 - APPLICATION NOTE

6/20

The scrolling registers can be configured with ScrollConfig(LowRowNbr, UpRowNbr, ScrollDir)

to enable the scrolling to begin.

Speed Control: there are two configurable speeds, controlled by the bit 5 (SS) of SCLR. If this

bit is set, the display is shifted by 4 TV lines (there are 625 TV lines on a standard display) at

each TV frame (after 6/23 2 vertical sync pulses). If reset, the display is shifted by only 2 TV

lines. Thus this last mode is the slowest.

4.2 Overview of the scrolling mechanism

4.2.1 Initialisation

The TDSRAM location corresponding to the rows to be scrolled must be cleared. The first row

that will appear scrolling on the screen must be written in the "Row Scrolling Buffer" (row 24 in

TDSRAM). At this step there is still nothing on the screen.

4.2.2 Scrolling registers configuration and use

The two scrolling registers have to be configured as described in paragraph 4.1.

The "Scrolling Enable" bit (SCE, R248) permits to display partially the row located in the "Row

Scrolling Buffer".

Figure 5. On screen scrolling locations

The precise location where this row appears on the screen depends on two factors:

- If the scrolling shift is chosen "Bottom-Up", the row is displayed on the screen at row

number:

"SCHR 5 LSBs" (Last row to be scrolled). If the direction is "Top-Down", the row is

displayed on the screen at row number: "SCLR 5 LSBs" (Uppermost row to be scrolled).

- The timing of a row scrolling depends on the speed in terms of vertical sync pulses.

1K TDSRAM

Row 1

Row 23

Free space

Row m

Row n

SCLR (248/page 20h)

Row n

SCHR (249/page 20h)Row 24

Row m

7/20

AN1858 - APPLICATION NOTE

Figure 6. Scrolling development

At this step, if the scrolling is just enabled and nothing else is done, the row will continue to

scroll continuously, repetitively. To avoid this drawback two bits have to be managed:

- The "Freeze Scrolling" bit (FSC, R248): when set, the row stops scrolling, but it stops no

matter where its position is.

- To be sure the scrolling is fully completed, and before it starts again, just poll the "End of

Extra Row" flag (EER, R249). This read-only bit is forced to "1" by hardware when the last

line of the extra row (row 24) is displayed.

To summarise, once detected the passage to "1" of EER, freeze the scrolling mode by setting

FSC.

In function ScrollConfig(LowRowNbr, UpRowNbr, ScrollDir), the EER flag (End of Extra Row)

is polled (it is a read only bit of register SCHR) until the end of the scrolling. Thus the scrolling

window is frozen (Freeze Scrolling bit of register SCLR). This is implemented in function Scroll-

ing().

4.2.3 What to do once the row is scrolled

Once this row is scrolled, we have:

- "Freeze Scrolling" (FSC, R248) = 1

- "Scrolling Enable" (SCE, R248) = 1

The next step would be to write the next row to be scrolled in the "row scrolling buffer", over-

writing the already scrolled one. But if you do that without precaution you will not get the

smooth scrolling you want.

You have to move the already scrolled row present in the "row scrolling buffer" to its actual

location in TDSRAM as done in figure "Scrolling development" step 4.

The next line to be scrolled can be loaded in the row scrolling buffer and the program loops.

Row 1

Row 23

Free space

SCROLLING

SCROLLING

Row 1

Row 23

Free space

SCROLLING

SCROLLING

Row n

Row n

SCHR (249/page 20h)

1

4

SCE = 1

FSC = 0 2

3

EER = 1

FSC = 1

AN1858 - APPLICATION NOTE

8/20

4.2.4 Scrolling of several rows

Figure 7. Scrolling of several rows

To scroll more than one row, is about the same as before as long as the block is defined by

rows m to n (cf. figures above), these rows are in turn defined by the SCLR & SCHR registers.

When the scrolling is enabled, both the block written in TDSRAM and the "row scrolling buffer"

scroll. Once this block has scrolled (polling on EER) and is frozen, move the whole block plus

the new row to their new TDSRAM location.

Row 1

Row 23

Free space

SCROLLING

SCROLLING

MODE

MODE

Row 1

Row 23

Free space

SCROLLING

SCROLLING

MODE

MODE

Row n

Row 1

Row 23

Free space

SCROLLING

MODE

1 2

3

4

5

EER = 1

SCHR (249/page 20h)

SCE = 1

FSC = 0

FSC = 1

9/20

AN1858 - APPLICATION NOTE

This is more formally described in this scrolling algorithm:

Figure 8. Scrolling algorithm

What we have here is the basic operating cycle for scrolling. We have seen the working of this

scrolling mode. The two following paragraphs are more C code oriented and describe how to

implement this functionality in your application.

4.3 Scrolling in serial mode

The scrolling in serial mode is the simplest way to scroll a window. The mechanism has been

explained above. The function ScrollRowsSerial(*screen_line, UpRowNbr, LowRowNbr,

ScrollDir, PageNbr) is designed to perform this feature.

When a new row has been scrolled, it is mandatory to move the whole block plus this new row

to their new location in TDSRAM. The algorithms above do it.

Scrolling algorithm

ScrollDir

Write pointed row in TDSRAM row 24

Initialize row pointer at the top of the block in ROM

Initialize scrolling registers

Scrolling

Treatment of each line of the block

Display already scrolled row

Bottom to Top

No

Yes

Yes

No

Top to Bottom

Prepare next row

Are the scrolled rows

all written in TDSRAM ?

All the rows of the

block processed ?

AN1858 - APPLICATION NOTE

10/20

4.3.1 Management of the previously scrolled lines

Bottom to Top:

i is the row just scrolled.

UpRowNbr is the uppermost displayable row of the scrolling window.

LowRowNbr is the last displayable row of the scrolling window.

for(k=LowRowNbr; k>=(LowRowNbr-i+UpRowNbr); k--)

{

j=get_TDSRAM_address(PageNbr,k);

j=write_MBT_BUFFER(screen_line+40-80*(LowRowNbr-k),j);

}

Here LowRowNbr is taken as the origin for the scrolling. This means that the scrolling window

will appear above this row. As LowRowNbr has been taken as the origin, the rows will be dis-

played up to the one just scrolled. The number of previously scrolled lines is equal to (i - Up-

RowNb).

In order to get the right row from the .s file, we have to shift the origin by LowRowNbr. This

explains the use of the Multi Byte Transfer.

Top to Bottom:

for(k=UpRowNbr; k<=(UpRowNbr+LowRowNbr-i); k++)

{

j=get_TDSRAM_address(PageNbr,k);

j=write_MBT_BUFFER(screen_line+40-80*(UpRowNbr-k),j);

}

In this case it is about the same except that the origin is taken from where the window began

scrolling.

4.4 Scrolling in parallel mode

The scrolling in parallel mode is a little bit more complex because a pair of 1 Kbytes blocks (a

page) must be scrolled together.

Thus, before using ScrollConfig, both of the "24" rows in each block have to be filled: one for

the attributes in the attributes block, one for the characters in the characters block. After doing

this, the way of scrolling is the same as described above.

4.5 Scrolling in line mode

The basic mechanism of this type of scrolling is the same as those described above. Here, the

row scrolling buffer is located at row 12 of the TDSRAM 0.5K block. Thus, it is only possible to

scroll 11 rows. Furthermore, it is mandatory to scroll all 11 rows. Even if some rows are blank,

they will be scrolled. It is a hardware related obligation.

Of course, it is very likely that you want to scroll windows in parallel mode for your menus for

example. Thus, you have to use also the row scrolling buffer of the attribute half page.

11/20

AN1858 - APPLICATION NOTE

5 SOFTWARE EXAMPLE

5.1 Display .c file

Only the new routines and the modified ones are listed below. For the other ones please

refer to the application note "How to Manage the ST92195 OSD".

/*********************** STMICROELECTRONICS ************************

FILENAME : DISPLAY.C

VERSION : V0.0

DATE : February 20, 1997

AUTHOR(s) : Robert Girard

PROCESSOR : ST92195

DESCRIPTION : This file contains the source code for the On Screen Display

Driver.

MODIFICATIONS:

Author : Vincent Tauzia

Date : 15/10/1997

Description: The functions ScrollConfig, ScrollRowsSerial,

ScrollRowsParallel and SetLineModeRowAttr are added

*************************************************************************/

/*************************************************************************

INPUTS: Row number to display, page number and mode (serial, //, serial 80 col)

! The page number take into account the mode, i.e. 8 pages in serial mode

! and 4 in parallel mode (1K for characters 1K for attributes).

! and 4 in serial 80 characters mode (1K + 1K).

OUTPUTS : ST9 OSD registers

DESCRIPTION : This function displays a row.

*************************************************************************/

void EnableDisplay(tByte RowNumber, tByte PageNbr, tByte Mode)

{

tByte i, j; /* Temporary storage */

/* mode enabling & page number enabling */

spp(DCR1_PG);

switch (Mode)

{

/* VT 17/10/97 */

case cLineMode:

DCM1R &= ~0x03; /* serial mode / Line Mode */

DCM0R &= ~0x01; /* single page */

TDPR &= 0xf0;

TDPR |= PageNbr*2; /* page number in 1/2 Kbyte block */

break;

/* End VT Modif. */

case cSerial:

DCM1R &= ~0x01; /* serial mode */

DCM0R &= ~0x01; /* single page */

TDPR &= 0xf0;

TDPR |= PageNbr*2; /* page number in 1/2 Kbyte block */

AN1858 - APPLICATION NOTE

12/20

break;

case cParallel:

DCM1R |= 0x01; /* parallel mode */

DCM0R &= ~0x01; /* single page */

TDPR &= 0xf0;

TDPR |= PageNbr*4; /* page number in 1/2 Kbyte block */

break;

case cSerial80:

DCM1R &= ~0x01; /* serial mode */

DCM0R |= 0x01; /* double page */

TDPR &= 0xf0;

TDPR |= PageNbr*4; /* page number in 1/2 Kbyte block */

break;

}

/* row enabling */

if (RowNumber == cRowAll)

{

DE0R = 0xff;

DE1R = 0xff;

DE2R = 0xff;

return;

}

/* Set bit position according to the row number */

for (i=1, j=RowNumber; j>1; j--)

asm ("rol %0" : :"r"(i));

/* Enable selected row */

if (RowNumber <= cRow8)

{

DE0R = DE0R | i;

return;

}

if (RowNumber <= cRow16)

{

DE1R = DE1R | i;

return;

}

if (RowNumber <= cRow23)

{

DE2R = DE2R | i;

}

}

/* VT 15/10/97 */

/*************************************************************************

13/20

AN1858 - APPLICATION NOTE

INPUTS : - The uppermost row number (1-23)

- The lowermost row number

- The scrolling direction (Bottom Up or Top Down)

OUTPUTS : none

DESCRIPTION : This function configures the scrolling registers

*************************************************************************/

void ScrollConfig(tByte LowRowNbr, tByte UpRowNbr, tByte ScrollDir)

{

spp(DCR1_PG);

/* Enable Scrolling and keep frozen */

SCHR = LowRowNbr| (ScrollDir<<5);

SCLR = UpRowNbr | 0xE0; /* Scrolling Enable and Freeze */

}

void Scrolling()

{

spp(DCR1_PG);

/* Freeze Off - Start scrolling */

SCLR &= 0xBF;

while(!(SCHR & 0x40)) NOP; /* Wait for EER to be set */

/* Freeze On - Stop Scrolling */

SCLR |= 0x40;

}

/************************************************************************

INPUTS : - Address of the table corresponding to the .s file from

OSD Edit

- The uppermost row number (1-23)

- The lowermost row number

- The scrolling direction (Bottom Up or Top Down)

- Page number to fill with the table.

( Page=2Kb PageNbr from 0 to 3)

OUTPUTS : none

DESCRIPTION: This function scrolls the specified lines in serial mode

*************************************************************************/

void ScrollRowsSerial (const tByte *screen_line,tByte UpRowNbr, tByte LowRowN-

br,tByte ScrollDir, tByte PageNbr)

{

tByte i,k; /* Buffer */

tByte *j;

if(ScrollDir==cBottomToTop)

{

/* Point the beginning of the block */

screen_line = screen_line + 80*UpRowNbr;

/* Treatment of each line of the block */

for(i=UpRowNbr; i<=LowRowNbr; i++)

{

/* Get the scrolling buffer line address */

j=get_TDSRAM_address(PageNbr,24);

AN1858 - APPLICATION NOTE

14/20

/* Write the line to be scrolled */

j=write_MBT_BUFFER(screen_line+40,j);

/* Scroll it */

ScrollConfig(LowRowNbr, UpRowNbr, ScrollDir);

/* Display the already scrolled lines */

for(k=LowRowNbr; k>=(LowRowNbr-i+UpRowNbr); k--)

{

/* Same as above except that you write in the

displayable rows (1-23) */

j=get_TDSRAM_address(PageNbr,k);

j=write_MBT_BUFFER(screen_line+40-80*(LowRowNbr-k),j);

}

/* Prepare next .s line treatment */

screen_line=screen_line+80;

}

}

else

{

/* Point the beginning of the block */

screen_line = screen_line + 80*LowRowNbr;

/* Treatment of each line of the block */

for(i=LowRowNbr; i>=UpRowNbr; i--)

{

/* Get the scrolling buffer line address */

j=get_TDSRAM_address(PageNbr,24);

/* Write the line to be scrolled */

j=write_MBT_BUFFER(screen_line+40,j);

/* Scroll it */

ScrollConfig(LowRowNbr, UpRowNbr, ScrollDir);

/* Display the already scrolled lines */

for(k=UpRowNbr; k<=(UpRowNbr+LowRowNbr-i); k++)

{

/* Same as above except that you write in the

displayable rows (1-23) */

j=get_TDSRAM_address(PageNbr,k);

j=write_MBT_BUFFER(screen_line+40-80*(UpRowNbr-k),j);

}

/* Prepare next .s line treatment */

screen_line=screen_line-80;

}

}

}

/*************************************************************************

INPUTS : - Address of the table corresponding to the .s file from

OSD Edit

- The uppermost row number (1-23)

- The lowermost row number

- The scrolling direction (Bottom Up or Top Down)

- Page number to fill with the table.

(Page=2Kb PageNbr from 0 to 3)

15/20

AN1858 - APPLICATION NOTE

OUTPUTS : none

DESCRIPTION : This function scrolls the specified lines in parallel mode

*************************************************************************/

void ScrollRowsParallel (const tByte *screen_line,tByte UpRowNbr, tByte Low-

RowNbr,

tByte ScrollDir, tByte PageNbr)

{

tByte i,*j,*k; /* buffer */

/* Set the scrolling registers */

ScrollConfig(LowRowNbr, UpRowNbr, ScrollDir);

if(ScrollDir==cBottomToTop)

{

/* Point the beginning of the block */

screen_line = screen_line + 80*UpRowNbr;

/* Treatment of each line of the block */

for(i=UpRowNbr; i<=LowRowNbr; i++)

{

/* Get the scrolling buffer line address of the attribute page */

k=get_TDSRAM_address((PageNbr*2)+1,24);

/* Get the scrolling buffer line address of the character page */

j=get_TDSRAM_address((PageNbr*2),24);

/* Write at these adresses the attribute line

and the character line */

k=write_MBT_BUFFER(screen_line,k);

j=write_MBT_BUFFER(screen_line+40,j);

/* Scroll'em */

Scrolling();

/* Prepare next .s line treatment */

screen_line=screen_line+80;

}

}

else

{

/* Point the end of the block */

screen_line = screen_line + 80*LowRowNbr;

/* Treatment of each line of the block */

for(i=LowRowNbr; i>=UpRowNbr; i--)

{

/* Get the scrolling buffer line address of the attribute page */

k=get_TDSRAM_address((PageNbr*2)+1,24);

/* Get the scrolling buffer line address of the character page */

j=get_TDSRAM_address((PageNbr*2),24);

/* Write at these adresses the attribute line

and the character line */

k=write_MBT_BUFFER(screen_line,k);

j=write_MBT_BUFFER(screen_line+40,j);

/* Scroll'em */

Scrolling();

/* Prepare next .s line treatment */

screen_line=screen_line-80;

AN1858 - APPLICATION NOTE

16/20

}

}

}

/*************************************************************************

INPUTS : Table making the correspondance between TSRAM rows and

displayed rows

OUTPUTS : none

DESCRIPTION : This function fills the Row Attributes Line

*************************************************************************/

void SetLineModeRowAttr(const tByte *Attributes)

{

tByte *i;

i=(tByte *)(cTDSRAM_BaseAddress+(cPage7*cBlockLength)+0x100);

i=write_MBT_BUFFER(Attributes,i);

}

/* VT End modif. */

17/20

AN1858 - APPLICATION NOTE

5.2 Display.h file

/*********************** STMICROELECTRONICS ************************

FILENAME : DISPLAY.H

VERSION : V0.0

DATE : February 20, 1997

AUTHOR(s) : Robert Girard

PROCESSOR : ST92195

DESCRIPTION : This module contains constant definitions and function

prototypes.

MODIFICATIONS:

- Author: Vincent Tauzia

Date: 15/10/1997

Description: The function ScrollRows is added

The constant cBottomToTop and cTopToBottom are added

/*************************************************************************

Prototypes

*************************************************************************/

/* VT 15/10/97 */

void ScrollConfig(tByte LowRowNbr, tByte UpRowNbr, tByte ScrollDir);

void Scrolling(void);

void ScrollRowsSerial(const tByte *screen_line,tByte UpRowNbr, tByte LowRowN-

br, tByte ScrollDir, tByte

PageNbr);

void ScrollRowsParallel(const tByte *screen_line,tByte UpRowNbr, tByte Low-

RowNbr, tByte ScrollDir, tByte

PageNbr);

void SetLineModeRowAttr(const tByte *Attributes);

/* VT End modif. */

/*************************************************************************

Definitions

*************************************************************************/

/* VT 17/10/97 */

#define cLineMode 0x03

/* VT End modif. */

/* VT 15/10/97 */

/* Scrolling */

#define cBottomToTop 0x01

#define cTopToBottom 0x00

AN1858 - APPLICATION NOTE

18/20

5.2.1 Examples of use of the previous routines

/*************************************************************************

DESCRIPTION: This function displays a scrolling example

*************************************************************************/

void ShowScrolling()

{

SetDefaultColour(cDefaultBlack,cDefaultCyanHI);

BoxMode(cInSolidOutBlanked,cFullScreenGreen);

/*select a green solid background*/

DisableHeaderStatus(); /* no header and status */

SetNationalCharacter(7);

FillFullSinglePageParallel((const unsigned char*)&blankp,cPage0);

EnableDisplay(cRowAll,cPage0,cParallel);

/* All the rows are enable in serial mode */

/* Display a blank page */

/* FillFullSinglePageParallel((const unsigned char*)&blank,cPage4);*/

ScrollRowsParallel((const unsigned char *) &menu6,7,23,cBottomToTop,

cPage0);

WaitForSecond(1);

/* ScrollRowsSerial((const unsigned char *) &menu4b,2,5,cTopToBottom,

cPage4);

WaitForSecond(1); */

}

/*************************************************************************

DESCRIPTION: This function displays an example of the use of the line mode

*************************************************************************/

void ShowLineMode()

{

SetDefaultColour(cDefaultMagenta,cDefaultBlack);

BoxMode(cInSolidOutTransparent,cFullScreenGreen);

FillFullSinglePageSerial((const unsigned char *) &menu5,cPage4);

FillHeader((const unsigned char *) &menu5,cPageHeader0);

SetLineModeRowAttr(RowAttr);

EnableDisplay(cRowAll,cPage4,cLineMode);

EnableHeaderStatus(cPageHeader0,cLevelOne);

/* H&S enable in level one mode (serial) */

WaitForSecond(4);

}

}

19/20

AN1858 - APPLICATION NOTE

6 REVISION HISTORY

Table 1. Revision History

Date Revision Description of Changes

April-1999 1 First Issue

7-September -2004 2 Stylesheet update. No content change.

AN1858 - APPLICATION NOTE

20/20

The present note which is for guidance only, aims at providing customers with information regarding their products in order for them to save

time. As a result, STMicroelectronics shall not be held liable for any direct, indirect or consequential damages with respect to any claims aris-

ing from the content of such a note and/or the use made by customers of the information contained herein in connection with their products.

Information furnished is believed to be accurate and reliable. However, STMicroelectronics assumes no responsibility for the consequences

of use of such information nor for any infringement of patents or other rights of third parties which may result from its use. No license is granted

by implication or otherwise under any patent or patent rights of STMicroelectronics. Specifications mentioned in this publication are subject

to change without notice. This publication supersedes and replaces all information previously supplied. STMicroelectronics products are not

authorized for use as critical components in life support devices or systems without express written approval of STMicroelectronics.

The ST logo is a registered trademark of STMicroelectronics.

All other names are the property of their respective owners

) 2004 STMicroelectronics - All rights reserved

STMicroelectronics group of companies

Australia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan -

Malaysia - Malta - Morocco - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of America

www.st.com





Comment on "ST92195 OSD enhanced features"
Comments:  
*  You can enter [0] more charecters.
*Verify code:
 
 
Webinars

Seminars

Visit Asia Webinars to learn about the latest in technology and get practical design tips.

 

Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

 
Back to Top