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

📄 timer.h

📁 CHP 2 - Real-Time Digital Signal Processing: Implementations and Applications, Second Edition by Sen
💻 H
字号:
// 
//  Project: Experiment 2.10.3 DSP Timer - Chapter 2 
//  File name: timer.h   
//
//  Description: This is the header file for experiment 2.10.3
//
//  For the book "Real Time Digital Signal Processing: 
//                Implementation and Application, 2nd Ed"
//                By Sen M. Kuo, Bob H. Lee, and Wenshun Tian
//                Publisher: John Wiley and Sons, Ltd
//
//  Tools used: CCS v.2.12.07
//              TMS320VC5510 DSK Rev-C
//

// TCR Register bit assignment
#define TSS_BIT   0x0010      
#define ARB_BIT   0x0020          
#define FREE_BIT  0x0100
#define SOFT_BIT  0x0200
#define TLB_BIT   0x0400
#define FUNC_BIT  0x0000

// Register bits                            
#define TINT_BIT 0x10    

// Constant values set for 10us interrupt rate
#define DSP_CLOCK_RATE    200 // C5510 200MHz 
#define TDDR_SET 9
#define PRD_SET  (DSP_CLOCK_RATE-1)    

// CLKMD initial value setting
#define PLLMUL_SET   	25    // MULT = 25
#define PLLDIV_SET    	2     // DIV = 1
#define LOCK_SET      	1     // LOCK is set
#define BREAKLEN_SET  	1     // Force to 1
#define PLLENABLE_SET 	1     // PLL enable
#define BYPASSDIV_SET   0     
#define TEST_SET        0     // Must be 0
#define IOB_SET         0
#define IAI_SET         0
#define RESERVED_SET    0

// Timer registers
#define TIMER_BASE  0x1000
#define TIM0  (ioport volatile unsigned short*)(TIMER_BASE+0)
#define PRD0  (ioport volatile unsigned short*)(TIMER_BASE+1)
#define TCR0  (ioport volatile unsigned short*)(TIMER_BASE+2)
#define PRSC0 (ioport volatile unsigned short*)(TIMER_BASE+3)

// CLKMD register
#define CLKMD_ADDR 0x1c00
#define CLKMD 	 (ioport volatile unsigned short *)CLKMD_ADDR

// Interrupt event and flag registers
#define IER0 (volatile unsigned short *)0x0000
#define IFR0 (volatile unsigned short *)0x0001

typedef struct {
    volatile unsigned short us;
    volatile unsigned short ms;
    volatile unsigned short s;   
} C55xTimer;

extern C55xTimer time;

extern void initTimer(void);
extern void startTimer(void);
extern void stopTimer(void);  
extern void initCLKMD(void);
extern interrupt void c_tint0(void);


⌨️ 快捷键说明

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