⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex2.c

📁 dsp芯片TMS320C5416实验程序
💻 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};

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();
		
	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++)
	{
		LED_DAT = 0x01<<(index&0x07);
		OSTimeDly(1000); 
	}
}



void task_segs(void *data)
{
	int  data_index;
	int  loop;
	
	for(data_index = 0 ; ;  data_index++)
	{
		for(loop = 0; loop < 80; loop++)
		{
			show_seg7(1, seg7[(data_index+0)%10]);		
			show_seg7(2, seg7[(data_index+1)%10]);	
			show_seg7(3, seg7[(data_index+2)%10]);	
			show_seg7(4, seg7[(data_index+3)%10]);	
			show_seg7(5, seg7[(data_index+4)%10]);	
			show_seg7(6, seg7[(data_index+5)%10]);	
			show_seg7(7, seg7[(data_index+6)%10]);	
			show_seg7(8, seg7[(data_index+7)%10]);	
		}
	}
	
	return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -