分享一個UCOS-atmega128程序
單片機(jī)源程序如下:
- #include "includes.h"
- #define F_OSC 8000000 /* Crystal frequence 10Mhz*/
- #define LED_ON() { DDRF = 0xff; PORTF = 0x0; }
- #define LED_OFF() ( PORTF = 0xff )
- /* ***********************************
- * TimerInit()
- * Fun: Initial the system timer for os, using timer 0
- * ************************************ */
- void TimerInit( void )
- {
- TCCR2 = 1<<3; /* work in CTC mode */
- OCR2 = 98; /* 100 hz */
- TCNT2 = 0;
- TIMSK |= 1<<7; /* Enable CTC interrupt */
- TCCR2 |= 3; /* start timer, F_OSC/1024 */
- }
- OS_EVENT * mbox;
- OS_STK stk0[80], stk1[80];
- void task0( void * pdata )
- {
- INT8U error;
-
- while(1)
- {
- OSMboxPend( mbox, 0, &error );
- LED_ON();
- OSTimeDly(400);
- OSMboxPost( mbox, (void *)1 );
- }
-
- }
- void task1( void * pdata )
- {
- INT8U error;
-
- TimerInit();
- while(1)
- {
- OSMboxPend( mbox, 0, &error );
- LED_OFF();
- OSTimeDly(400);
- OSMboxPost( mbox, (void *)1 );
- }
-
- }
- int main()
- {
-
- INT8U error;
-
- OSInit();
- mbox = OSMboxCreate( (void *)1 );
- OSTaskCreate( task0, (void *)0, &stk0[99], 2 );
- OSTaskCreate( task1, (void *)0, &stk1[99], 3 );
- OSStart();
- return 0;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
ucos-Atmega128.zip
(160.36 KB, 下載次數(shù): 37)
2017-10-18 12:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|