參數(shù)資料
型號: 101-0452
廠商: Rabbit Semiconductor
文件頁數(shù): 20/100頁
文件大?。?/td> 0K
描述: KIT DEV RABBIT RCM2100 INTL
標準包裝: 1
系列: RabbitCore 2000
主要目的: *
嵌入式: *
已用 IC / 零件: HYDRA
主要屬性: *
次要屬性: *
已供物品: HYDRA 裝置,存儲卡,空白試驗卡,鼠標,鍵盤,游戲鍵盤,視頻和 USB 線纜,電源和 CD 等
20
RabbitCore RCM2100
3.1.4.2 FLASHLEDS.C
In addition to Dynamic C’s implementation of C-language programming for embedded
systems, it supports assembly-language programming for very efficient processor-level
control of the module hardware and program flow. This application is similar to
FLASHLED.C
and TOGGLELEDS.C, but uses assembly language for the low-level port
control within cofunctions, another powerful multitasking tool.
Dynamic C permits the use of assembly language statements within C code. This program
creates three functions using assembly language statements, then creates a C cofunction to
call two of them. That cofunction is then called within main().
Within each of the C-like functions, the #asm and #endasm directives are used to indicate
the beginning and end of the assembly language statements.
In the function initialize_ports( ), port A is initialized to be all outputs while bit 0
of port E is initialized to be an output.
In the function ledon(), a 0 is written to the port A bit corresponding to the desired LED
(0, which equals DS3, or 1 which equals DS4), turning that LED on. The ledoff( )
function works exactly the same way except that a 1 is written to the bit, turning the
selected LED off.
Finally, in the cofunction flashled(), the LED to be flashed, the on time in millisec-
onds, and the off time in milliseconds are passed as arguments. This function uses an end-
less for(;;) loop to call the ledon() and ledoff() functions, separated by calls to
the wait function DelayMs(). This sequence will make the indicated LED flash on and
off.
As is proper in C program design, the contents of main() are almost trivial. The program
first calls initialize_ports(), then begins an endless for(;;) loop. Within this
loop, the program:
1. Calls the library function hitwd(), which resets the microprocessor’s watchdog timer.
(If the watchdog timer is not reset every so often, it will force a hard reset of the sys-
tem. The purpose is to keep an intermittent program or hardware fault from locking up
the system. Normally, this function is taken care of by the virtual driver, but it is called
explicitly here).
2. Sets up a costatement which calls two instances of the flashled() function, one for
each LED. Note that one LED is flashed one second on, one-half second (500 ms) off,
while the other is flashed in the reverse pattern.
Note also the wfd keyword in the costatement. This keyword (an abbreviation for wait-
fordone
, which can also be used) must be used when calling cofunctions. For a complete
explanation, see Section 5 and 6 in the Dynamic C User’s Manual.
More Information
See the entries for the hitwd() and DelayMs() functions in the Dynamic C User’s
Manual, as well as those for the directives #asm and #endasm. For a complete explana-
相關(guān)PDF資料
PDF描述
VE-J7X-EZ-F1 CONVERTER MOD DC/DC 5.2V 25W
EVAL-ADF4360-8EBZ1 BOARD EVALUATION FOR ADF4360-8
VE-J7X-EY-S CONVERTER MOD DC/DC 5.2V 50W
MCP73213-B6SI/MF IC LI-ION/LI-POLY CTRLR 10-DFN
VE-J7W-EZ-F4 CONVERTER MOD DC/DC 5.5V 25W
相關(guān)代理商/技術(shù)參數(shù)
參數(shù)描述
10-104520-08P 制造商:Amphenol Aerospace 功能描述:PLUG
10-104520-08S 制造商:Amphenol Aerospace 功能描述:PLUG
10-104520-16P 制造商:Amphenol Aerospace 功能描述:PLUG
10-104520-16S 制造商:Amphenol Aerospace 功能描述:PLUG
10-104520-25S 制造商:Amphenol Aerospace 功能描述:PLUG