main.c

来自「ND-Tech DSP6713 Timer Source」· C语言 代码 · 共 64 行

C
64
字号
/* ======================================================================== */
/* Project Name: Timer                                                      */
/*                                                                          */
/* 夯 橇肺弊伐篮 Timer甫 捞侩窍咯 1檬付促 interrupt甫 惯积矫难辑 LED俊 矫埃 */
/* 儒抚阑 钎矫窍绰 橇肺弊伐捞促.                                            */ 
/* ======================================================================== */
/*          Copyright (C) 2000 - 2006 ND-Tech. Co., Ltd.                    */
/*                          All Rights Reserved.                            */
/* ======================================================================== */
#include 	"c6000.h"
#include 	"dsxio.h"

extern cregister volatile unsigned int IER;
extern cregister volatile unsigned int CSR;

int		count=0;

void PLL6713()
{
	int i;
	// CPU Clock Input : 50MHz
	
	PLLCSR	 = PLLCSR & 0xfffffffe;
	for(i=0;i<4;i++);
	PLLCSR	 = PLLCSR | 0x08;
	PLLDIV0  = 0x08001;  // 50MHz/2 = 25MHz
 	PLLM     = 0x0c;     // 25MHz * 12 = 300MHz
	PLLDIV1  = 0x08000;  // SYSCLK1 = 300MHz/1 = 300MHz
	PLLDIV2  = 0x08001;  // SYSCLK2 = 300MHz/2 = 150MHz // Peripheral Clock
	PLLDIV3  = 0x08003;  // SYSCLK3 = 300MHz/4 =  75MHz // SDRAM Clock
	for(i=0;i<4;i++);
	PLLCSR	 = PLLCSR & 0xfffffff7;
	for(i=0;i<4;i++);
	PLLCSR	 = PLLCSR | 0x01;
}

void intr_enable(int num)
{
	IER = IER | (1<<num) | 0x3;
	CSR = CSR | 0x1;
}

void timer_init(void)
{
	CTL0 = 0x380;     // Clock Mode
	PRD0 = 37500000;  // Timer of 1 sec
}

interrupt void c_int14()
{
	LED = count++;
	if(count>=256) count=0;
}

void main()
{
	PLL6713();
	timer_init();
	intr_enable(14);
	count = 0;
	while(1);
} 	

⌨️ 快捷键说明

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