S3C2440 GPIO控制
NAME: u2440mon.c
DESC: u2440mon entry point,menu,download
****************************************************************/
#defineGLOBAL_CLK1
//頭文件
#include
#include
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "profile.h"
#include "memtest.h"
#include "clock.h"
void Isr_Init(void);
//******************************************
//測試函數(shù)
void test_led(U32 i)
{
rGPBDAT =~ (1<}
//延時
void delay(U32 i)
{
U32 del;
while(i--)
{
for(del=0;del<1000000;del++);
}
}
/************************************主函數(shù)*****************************************/
void Main(void)
{
/**************************************************************************
硬件初始化
**************************************************************************/
MMU_Init(); //初始化MMU
Port_Init(); //初始化I/O口
Isr_Init(); //關(guān)閉所有中斷
cal_cpu_bus_clk(); //時鐘分頻 1 :4 :8, FCLK = 400MHZ,HCLK = 100MHZ,PCLK = 50MHZ,UCLK=48MHZ
Uart_Init( 0,115200 ); //初始化串口 0,波特率 115200
Uart_Select( 0 ); //選擇串口 0,傳遞全局參數(shù)
Uart_SendByte(n);
Uart_Printf("GT2440 TEST n");
Uart_Printf("*******************Init clock :*******************nn");
Uart_Printf("HCLK= %d ,PCLK= %d, FCLK= %dnn",HCLK,PCLK,FCLK);
Uart_Printf("*******************Init uart0 :*******************nn");
Uart_Printf(" Enter= 0 ,RATE= 115200 nn");
//---------------------------------------------------------------------------
/************************************************************************
用戶測試程序
********************************************************************************/
//GPB5 :LED1 , GPB6 :LED2 , GPB7 :LED3 , GPB8 :LED4
//00:輸入 ,01:輸出
rGPBCON = (0X01<<5*2)+(0X01<<6*2)+(0X01<<7*2)+(0X01<<8*2);
//GPDAT = 1,輸出高電平
rGPBDAT = 0Xff<<5;
while(1)
{
test_led(5); //LED1亮
delay(10);
test_led(6); //LED2亮
delay(10);
test_led(7); //LED3亮
delay(10);
test_led(8); //LED4亮
delay(10);
test_led(7); //LED7亮
delay(10);
test_led(6); //LED6亮
delay(10);
}
}
/**********************中斷設(shè)置*************************/
void Isr_Init(void)
{
rINTMOD=0x0; // All=IRQ mode
rINTMSK=BIT_ALLMSK; // All interrupt is masked.
}
評論