Texas Instruments MSP50C6xx manual Example 5-2. Second Project C-- With Speech

Models: MSP50C6xx

1 390
Download 390 pages 41.72 Kb
Page 342
Image 342

C– – Efficiency

assembly divided by two because C–– integers are 16 bit. The perl script in the main project directory can be used to resize bogus automatically or it can be done manually. To use the perl script, build the project after making any changes to assembly ram allocation. Run the perl script and then rebuild the project. To manually adjust bogus, build the project and then examine the list file mainasm.lst. Find RAMEND_ASM in the cross reference table and use it to replace the value in the define statement in ram.h. Rebuild the project to put the changes into effect. This only needs to be done when changes are made to assembly RAM allocation. Changes to C–– or assembly code other than RAM allocation do not require adjustments to bogus.

The next items in the program are function prototypes. All C–– functions have a return type of int (16 bit) and are declared with the mnemonic cmm_func. The first one is goasm(). Notice that there is no leading underscore because it is being called from C–– instead of assembly. The second one is the function in cmm1.asm for reading the value of seconds_passed.

Global variables are defined next. An integer is used to keep track of each element of the time. Global variables can be initialized when they are declared.

The function updateTime() is used to update the time. It calls getSecondsPassed() to determine the number of seconds that have passed since the time has been updated. It then recalculates the time variables (hours, minutes, etc.) updateTime() does not pass any values when it returns although it is technically of type int, like all C–– functions.

The main() function is the starting point for user code. After the 6xx part has been initialized main() is called from vroncof2.asm. The first call from main() is to doasm() which is in mainasm.asm. This is the function that sets up the timer and initializes seconds_passed. The program then goes into an infinite loop where updateTime() is called. In later projects, this infinite loop will be expanded to scan keys and write to the LCD.

Example 5–2. Second Project (C–– With Speech)

Adding speech to the first project increases functionality, but also increases the complexity of the project.

5-46

Page 342
Image 342
Texas Instruments MSP50C6xx manual Example 5-2. Second Project C-- With Speech