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

📄 dm642main.c

📁 这是DM642(EVM开发板)的IO控制原代码,用CCS3.3可以打开,调试通过.
💻 C
字号:
/********************************************************************/
/*  Copyright 2004 by SSD Incorporated.							*/
/*  All rights reserved. Property of SEED Incorporated.				*/
/*  Restricted rights to use, duplicate or disclose this code are	*/
/*  granted through contract.									    */
/*  															    */
/********************************************************************/
/*
 *---------dm642main.c---------
 * This example uses a timer to read and write the ESAM.
 */


#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#include <csl.h>
#include <std.h>
#include <csl_irq.h>
#include <csl_chip.h>
#include <csl_timer.h>
#include <csl_gpio.h>



#include "dm642.h"
#include "rtciic.h"
#include "eeprom.h"
#include "io&led.h"
#include "dm642_ide.h"
#include "dm642_flash.h"
#include "dm642_uart.h"

#define PRDValue0 0x00F70E0

extern far void vectors();
static GPIO_Handle hGpio;

Uint32 flag0=0;
TIMER_Handle hTimer0;
Uint32 TimerEventid;
//定时器配置系数结构体
TIMER_Config MyConfig0=
{
	0x00000205,//CTL
	PRDValue0,//PRD
	0x00000000,//CNT
};

//定时器0中断处理函数
interrupt void timer0(void)
{
	flag0+=1;
	if(flag0>=16)
		flag0=0;
	if(flag0>=8)
	{
		GPIO_pinWrite(hGpio,GPIO_PIN15,0);
		
	}
	else
	{
		
		GPIO_pinWrite(hGpio,GPIO_PIN15,1);
	}
}

//****************************主函数*****************************************************
void main()
{
/*-------------------------------------------------------*/
/* perform all initializations                           */
/*-------------------------------------------------------*/
	DM642_init();
	
	CSL_init();//初始化CSL
	//打开定时器0
	hTimer0 =TIMER_open(TIMER_DEV0,0);
	//获取定时器0的事件号
	TimerEventid=TIMER_getEventId(hTimer0);
/*----------------------------------------------------------*/
	/*中断向量表的初始化*/
	IRQ_globalDisable();
	//Point to the IRQ vector table
    IRQ_setVecs(vectors);
	//time0
    IRQ_nmiEnable();
    IRQ_globalEnable();
    IRQ_map(TimerEventid,14);
    IRQ_reset(TimerEventid);
    IRQ_enable(TimerEventid);  
/*----------------------------------------------------------*/
	TIMER_config(hTimer0,&MyConfig0);//对定时器0配置
	hGpio = GPIO_open(GPIO_DEV0,GPIO_OPEN_RESET);
	
	GPIO_reset(hGpio);
	
	//GPIO_config(hGpio,&MyGPIOCfg);
	GPIO_pinEnable(hGpio,GPIO_PIN15);
	GPIO_pinEnable(hGpio,GPIO_PIN4);
	GPIO_pinEnable(hGpio,GPIO_PIN5);
	GPIO_pinEnable(hGpio,GPIO_PIN6);
	GPIO_pinEnable(hGpio,GPIO_PIN7);
	GPIO_pinDirection(hGpio,GPIO_PIN15,GPIO_OUTPUT);
    GPIO_pinDirection(hGpio,GPIO_PIN4,GPIO_OUTPUT);
	GPIO_pinDirection(hGpio,GPIO_PIN5,GPIO_OUTPUT);
	GPIO_pinDirection(hGpio,GPIO_PIN6,GPIO_OUTPUT);
	GPIO_pinDirection(hGpio,GPIO_PIN7,GPIO_OUTPUT);
	//定时器开始运行
	TIMER_start(hTimer0);
//	TIMER_close(hTimer0);
	while(1)
	{

		GPIO_pinWrite(hGpio,GPIO_PIN4,0);
		DM642_waitusec(0x20000);
		GPIO_pinWrite(hGpio,GPIO_PIN4,1);
		DM642_waitusec(0x20000);

		GPIO_pinWrite(hGpio,GPIO_PIN5,0);
		DM642_waitusec(0x20000);
		GPIO_pinWrite(hGpio,GPIO_PIN5,1);
		DM642_waitusec(0x20000);

		GPIO_pinWrite(hGpio,GPIO_PIN6,0);
		DM642_waitusec(0x20000);
		GPIO_pinWrite(hGpio,GPIO_PIN6,1);
		DM642_waitusec(0x20000);

		GPIO_pinWrite(hGpio,GPIO_PIN7,0);
		DM642_waitusec(0x20000);
		GPIO_pinWrite(hGpio,GPIO_PIN7,1);
		DM642_waitusec(0x20000);     								            
		//这个程序是控制了GPIO15,GPIO4-7的高低电平,其他的参考类似操作就可以了
	}
}



⌨️ 快捷键说明

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