1503 views|0 replies

3836

Posts

19

Resources
The OP
 

DSP GPIO Programming [Copy link]

Come and experience the fun of flowing lanterns directly!

/******************************************************************************/
/* 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. */
/* */
/* */
/******************************************************************************/



#include <csl.h>
#include <csl_pll.h>
#include <csl_chip.h>
#include <csl_gpio.h>



#include <stdio.h>

void delay();

/*锁相环的设置*/
PLL_Config myConfig = {
0, //IAI: the PLL locks using the same process that was underway
//before the idle mode was entered
1, //IOB: If the PLL indicates a break in the phase lock,
//it switches to its bypass mode and restarts the PLL phase-locking //sequence
24, //PLL multiply value; multiply 24 times
1 //Divide by 2 PLL divide value; it can be either PLL divide value
//(when PLL is enabled), or Bypass-mode divide value
//(PLL in bypass mode, if PLL multiply value is set to 1)
};



void UserGpio(void)
{
int val;

/* Enable a pin as GPIO pin */
GPIO_pinEnable (GPIO_PIN1);

/* Write a value to a GPIO pin */
GPIO_pinWrite(GPIO_PIN1, 2);

/* Reads the value in a general purpose input pin */
val = GPIO_pinRead(GPIO_PIN1);
printf("Read GPIO_GPIO_PIN1 value = %d\n", val);
//printf("GPIO register address %d\n", GPIO_ADDR(val));

/* reads IOO and IO7 pin values */
val=GPIO_pinRead (GPIO_PIN0| GPIO_PIN1);

/* DiEnable a GPIO */
GPIO_pinDisable (GPIO_PIN1);

/* Writes value to non-parallel registers using GPIO_config */
//GPIO_config( myConfig);



}



main()
{
int i = 10;

/*初始化CSL库*/
CSL_init();

/*设置系统的运行速度为144MHz*/
PLL_config(&myConfig);
/*确定方向为输出*/
GPIO_RSET(IODIR,0xFF);

for(i = 0;i<0x0a;i++)
{
/*全亮*/
GPIO_RSET(IODATA,0xff);
delay();
/*全灭*/
GPIO_RSET(IODATA,0x0);
delay();
}
/*循环闪烁*/
for(i = 10; i >= 0; i--)
{
GPIO_RSET(IODATA,0x1);
delay();
delay();
GPIO_RSET(IODATA,0x2);
delay();
delay();
GPIO_RSET(IODATA,0x4);
delay();
delay();
GPIO_RSET(IODATA,0x8);
delay();
delay();
GPIO_RSET(IODATA,0x10);
delay();
delay();
GPIO_RSET(IODATA,0x40);
delay();
delay();
GPIO_RSET(IODATA,0x80);
delay();
delay();
}

UserGpio();
}

// 延时函数
void delay()
{
Uint32 j = 0,k = 0;
for(j = 0;j<0x0c;j++)
{
for(k= 0;k<0xffff;k++)
{}
}
}

This post is from DSP and ARM Processors
 

Guess Your Favourite
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list