📄 io.c
字号:
/******************************************************************************/
/* Copyright 2004 by SEED Electronic Technology LTD. */
/* All rights reserved. SEED Electronic Technology LTD. */
/* Restricted rights to use, duplicate or disclose this code are */
/* granted through contract. */
/* MODULE NAME... DARAM on board */
/* FILENAME...... DEC5416_SRAM.c */
/* PROJECT....... Read and write on-board daram memory of TMS320VC5502 */
/* 作者: gao */
/* 版本:1.0 */
/* 日期:06.11.10 */
/******************************************************************************/
#include "DSP28_Device.h"
#include "comm.h"
#include "ext_inf.h"
/*交通灯操作宏定义*/
#define EASTEWEST 0x88c //交通灯东西通(南北禁行)
#define SOUTHNORTH 0x311 //交通灯南北通(东西禁行)
#define IOCHANGE 0x462 //交通灯各方向黄灯亮
#define ALLFORBIN 0x914 //交通灯各方向均禁行
//实验操控:
//选择TESTCOMMAND:1为自动运行,2为夜间模式,3为交通灯东西通,
// 4为交通灯南北通,5为禁行
#define TESTCOMMAND 1 //交通灯操作命令选择
/*定义扩展总线存储器空间页地址寄存器地址为0x004020*/
volatile unsigned int* p_ceselect=(volatile unsigned int *)0x004020;
/*定义交通灯IO口的地址为0x80000*/
volatile unsigned int* p_trafficaddr=(volatile unsigned int *)0x080000;
//////////////
unsigned int TestCommand;
unsigned int iostatus=0;
/******************************************************************/
void delay(int period);
/******************************************************************/
void main(void){
/*初始化系统*/
InitSysCtrl();
*p_ceselect =0x6 ;//打开ce3空间
#if TESTCOMMAND==1
TestCommand =TRAFFICAUTO;//自动运行 0xAA14
#endif
#if TESTCOMMAND==2
TestCommand =TRAFFICNIGHT;//夜间模式 0xAA16
#endif
#if TESTCOMMAND==3
TestCommand =TRAFFICEAST;//交通灯东西通 0xAA1A
#endif
#if TESTCOMMAND==4
TestCommand =TRAFFICSOUTH;//交通灯南北通 0xAA1B
#endif
#if TESTCOMMAND==5
TestCommand =TRAFFICFORBID;//禁行 0xAA1C
#endif
for(;;){
switch(TestCommand){
/*自动运行模式*/
case TRAFFICAUTO:
/*白天模式*/
/*从东西到南北*/
iostatus = EASTEWEST;
*p_trafficaddr=iostatus;
delay(2000);
iostatus = IOCHANGE;
*p_trafficaddr=iostatus;
delay(1000);
iostatus = SOUTHNORTH;
*p_trafficaddr=iostatus;
delay(8000);
/*从南北到东西*/
iostatus = SOUTHNORTH;
*p_trafficaddr=iostatus;
delay(2000);
iostatus = IOCHANGE;
*p_trafficaddr=iostatus;
delay(1000);
iostatus = EASTEWEST;
*p_trafficaddr=iostatus;
delay(8000);
break;
/*夜间模式*/
case TRAFFICNIGHT:
iostatus = IOCHANGE;
*p_trafficaddr=iostatus;
delay(6000);
iostatus = 0;
*p_trafficaddr=iostatus;
delay(6000);
break;
/*人工模式*/
/*交通灯东西通*/
case TRAFFICEAST:
iostatus = IOCHANGE;
*p_trafficaddr=iostatus;
delay(1000);
iostatus = EASTEWEST;
*p_trafficaddr=iostatus;
delay(2000);
TestCommand = 0;
break;
/*交通灯南北通*/
case TRAFFICSOUTH:
iostatus = IOCHANGE;
*p_trafficaddr=iostatus;
delay(1000);
iostatus = SOUTHNORTH;
*p_trafficaddr=iostatus;
delay(2000);
TestCommand = 0;
break;
/*禁行*/
case TRAFFICFORBID:
iostatus = IOCHANGE;
*p_trafficaddr=iostatus;
delay(1000);
iostatus = ALLFORBIN;
*p_trafficaddr=iostatus;
delay(2000);
TestCommand = 0;
break;
default:
break;
}
}
}
/******************************************************************/
void delay(int period)
{
int i, j;
for(i=0; i<period; i++)
{
for(j=0; j<0xc00; j++);
}
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -