📄 main.c
字号:
/*
;***********************************************************************
;* 北京达盛科技有限公司
;* 研 发 部
;*
;* http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ---------------
;*
;* 文件名称 : IO.C
;* 文件功能 : 该文件为测试定时器0的测试程序,CPU=TMS320VC5402
;* 接口说明: 输出OUT: IO的 8001H 74ls273
;*-----------------------------------------------------------------------
*/
//------------------头文件--------------------------------------
#include "DspRegDefine.h" //VC5402 寄存器定义
#include "stdio.h" //输入输出头文件
//---------------------------------------------------------------
/* ****************** 宏定义 ***************
************************************************************
*/
#define UCHAR unsigned char
#define UINT16 unsigned int
#define UINT32 unsigned long
#define TRUE 1
#define FALSE 0
#define OUTH 0x5555
#define OUTL 0xaaaa
//---------------------------------------------------------------
//--------------- HD7279A 指令 -----------------------------
#define CMD_RESET 0xa4 //复位
#define CMD_TEST 0xbf //测试
#define RTL_UNCYL 0xa1 //左移
#define RTR_UNCYL 0xa0 //右移
#define RTL_CYCLE 0xa3 //循环左移
#define RTR_CYCLE 0xa2 //循环右移
#define DECODE0 0x80 //下载数据按方式0译码
#define DECODE1 0xc8 //下载数据按方式1译码
#define UNDECODE 0x90 //下载数据但不译码
#define BLINKCTL 0x88 //闪烁控制
#define ACTCTL 0x98 //消隐控制
#define SEGON 0xe0 //段点亮
#define SEGOFF 0xc0 //段关闭
#define CMD_READ 0x15 //读键盘数据
//---------------------------------------------------------------
/* ****************** 端口定义***************
************************************************************
*/
//---------------------------------------------------------
ioport UINT16 port8001; //定义输出io端口为0x8001;
//---------------------------------------------------------
//---------------------------------------------------------
/* ****************** 全局变量定义***************
************************************************************
*/
unsigned int flag,flag1=0;
unsigned int TIMER=0;
char send_buff=0x00;
int temp=0;
/*
**********************************************************************
*************** 所使用的函数原型 *****************
**********************************************************************
*/
void cpu_init(void); //初始化CPU
void mcbsp1_init(void); //初始化MCBSP1设置寄存器,配置成IO模式
void set_t0(); //设置T0的寄存器
void Delay(int numbers); //延迟
void cs_low(void);
void send(void);
extern void delay_8us(void); //8us延迟 --T2\T3\T6\T7
extern void delay_25us(void); //25us延迟 --T4\T5
extern void delay_50us(void); //50us延迟 --T1
void delay_25ms(void); //25ms延迟 --复位延迟
//-------------------------------------------------------------------
/*
************************************************************************
*********************** 函数定义 ******************
************************************************************************
*/
//--------------------------------------------------------------------
// 函数名称 : void cpu_init(void)
// 函数说明 : 初始化CPU
// 输入参数 : 无
// 输出参数 : 无
//--------------------------------------------------------------------
void cpu_init(void)
{
asm(" nop ");
asm(" nop ");
asm(" nop ");
//-------------------------------------------------------------------
//CLKMD DEFINITIONS:
// PLLMUL (bit 15-12) - 0000 PLL multiplier = 0 (mult by 1)
// PLLDIV (bit 11) - 0 PLL divider = 0 (div by 1)
// PLLCOUNT (bit 10-3)- 11111111 PLL counter set to max
// PLLONOFF (bit 2) - 1 PLL on
// PLLNDIV (bit 1) - 1 Select PLL mode
// PLLSTATUS (bit 1) - x PLL Status (read only)
// ------------------
// 0000011111111111 = 0x07ff CLKMD=1 X CLKIN
//--------------------------------------------------------------------
*(unsigned int*)CLKMD=0x0; //switch to DIV mode clkout= 1/2 clkin
while(((*(unsigned int*)CLKMD)&01)!=0);
*(unsigned int*)CLKMD=0x07ff; //switch to PLL X 2 mode
//--------------------------------------------------------------------
// ST0 DEFINITIONS:
// ARP (bit 15-13) - 000 Auxiliary register pointer
// TC (bit 12) - 1 Test/control flag
// C (bit 11) - 1 Carry is set to 1 if the result of an addition generates a carry; it is cleared to 0 if the
// result of a subtraction generates a borrow.
// OVA (bit 10) - 0 Overflow flag for accumulator A
// OVB (bit 9) - 0 Overflow flag for accumulator B
// DP (bit 8-0) - 00000000 Data-memory page pointer
// --------------------
// 0001 1000 0000 0000 =0x1800 Reset value
//--------------------------------------------------------------------
// *(unsigned int*)ST0=0x1800;
//--------------------------------------------------------------------
// ST1 DEFINITIONS:
// BRAF (bit 15) - 0 Block-repeat active flag
// CPL (bit 14) - 1 Compiler mode CPL=0 DP;CPL=1 SP
// XF (bit 13) - 1 XF status
// HM (bit 12) - 0 Hold mode
// INTM (bit 11) - 1 Interrupt mode INTM=0,All unmasked interrupts are enabled
// Reser (bit 10) - 0 Always read as 0
// OVM (bit 9) - 0 Overflow mode
// SXM (bit 8) - 1 Sign-extension mode
// C16 (bit 7) - 0 Dual 16-Bit/double-precision arithmetic mode
// FRCT (bit 6) - 0 Fractional mode
// CMPT (bit 5) - 0 Compatibility mode
// ASM (bit 4-0) - 00000 Accumulator shift mode
// --------------------
// 0110 1001 0000 0000 =0x2900 Reset value
//--------------------------------------------------------------------
// *(unsigned int*)ST1=0x6900;
//--------------------------------------------------------------------
//IPTR DEFINITIONS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -