?? ex3.c
字號:
#include "includes.h"
#include "ioports.h"
#define IMR *(volatile unsigned int*)0x00
#define IFR *(volatile unsigned int*)0x01
#define TASK_STK_SIZE 256 /* Size of each task's stacks (# of WORDs) */
#define N_TASKS 2 /* Number of identical tasks */
OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; /* Tasks stacks */
OS_STK task_startStk[TASK_STK_SIZE];
#define ADJUST_DSP_CLK clk_adjust
void task_start(void *data);
void task_led(void *data);
void task_segs(void *data);
unsigned int seg7[16] =
{0x03f|0x80, 0x006, 0x05b, 0x04f, 0x066, 0x06d, 0x07d, 0x007,
0x07f, 0x06f, 0x077, 0x07c, 0x039, 0x05e, 0x079, 0x071};
/* mailbox event control blocks */
OS_EVENT *Mbox;
void hard_delay(int cnt)
{
while(cnt--);
}
void clk_adjust()
{
asm(" stm #0b, CLKMD ");
asm("ChkForRdy: ");
asm(" ldm CLKMD, A ");
asm(" and #01b, A ");
asm(" bc ChkForRdy, ANEQ ");
asm(" stm #33efh, CLKMD ");
asm(" rpt #80h ");
asm(" nop ");
}
void main()
{
/* 板卡IO端口及外設初始狀態初始化 */
LED_DAT = 0x01;
ADJUST_DSP_CLK();
INIT_C54();
OSInit();
OSTaskCreate(task_start, (void *)0,
(void *)&task_startStk[TASK_STK_SIZE - 1], 0);
OSStart();
while(1);
}
void task_start(void *data)
{
UBYTE err;
OS_ENTER_CRITICAL();
StartTimer(); /* install the C54x Timer */
OS_EXIT_CRITICAL();
Mbox = OSMboxCreate((void *)0);
OSTaskCreate(task_led, (void *)0,
(void *)&TaskStk[0][TASK_STK_SIZE - 1], 2);
OSTaskCreate(task_segs, (void *)0,
(void *)&TaskStk[1][TASK_STK_SIZE - 1], 3);
for (;;) {
err++;
OSTimeDly(100); /* Delay 100 clock tick */
}
}
void task_led(void *data)
{
int index = 0;
for( index = 0; ; index++)
{
OSMboxPost(Mbox, (void*)(index&0x07));
LED_DAT = 0x01<<(index&0x07);
OSTimeDly(2000);
}
}
void task_segs(void *data)
{
int Msg;
INT8U err;
SEG7_CLOSE(2);
SEG7_CLOSE(3);
SEG7_CLOSE(4);
SEG7_CLOSE(5);
SEG7_CLOSE(6);
SEG7_CLOSE(7);
SEG7_CLOSE(8);
SEG7_OPEN(1);
while(1)
{
/* wait for a message from the input mailbox */
Msg = (int)OSMboxPend(Mbox, 0, &err);
SEG7_DAT = ~seg7[Msg];
}
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -