www.pudn.com > s3c2410guiRTC.rar > GPIO.C


//==================================================================== 
// File Name : 2410test.c 
// Function  : S3C2410 Test Main Menu 
// Program   : Shin, On Pil (SOP) 
// Date      : May 30, 2002 
// Version   : 0.0 
// History 
//   0.0 : Programming start (February 20,2002) -> SOP 
//   1.0 (20020530) : First release for customer 
//   1.1 (20020801) : Strata NOR Flash Added and etc. -> SOP 
//==================================================================== 
 
#include  
#include  
 
#include "def.h" 
#include "option.h" 
#include "2410addr.h" 
#include "2410lib.h" 
#include "2410slib.h" 
#include "mmu.h" 
 
 
void Isr_Init(void); 
void HaltUndef(void); 
void HaltSwi(void); 
void HaltPabort(void); 
void HaltDabort(void); 
void Led_Display(int data); 
 
 
//=================================================================== 
void Main(void) 
{ 
    int i; 
 
    Led_Display(0x0f); 
    Led_Display(0x00);     
    
     
     
    MMU_Init(); 
    
    ChangeClockDivider(1,1);          // 1:2:4     
 
    ChangeMPllValue(0xa1,0x3,0x1);    // FCLK=202.8MHz   
     
    Port_Init(); 
    Isr_Init(); 
 
    Uart_Init(0,115200); 
    Uart_Select(0); 
 
    while(1) 
    { 
        i = 0; 
       
         
        Uart_Printf("\n\nSMDK2410 Board (MCU S3C2410) Test Program Ver 1.1(20020801) FCLK = %d Hz\n\n", FCLK); 
         
        while(1) 
        {   //display menu 
        } 
         
    } 
} 
 
//=================================================================== 
//Active is low.(LED On) 
// GPF7  GPF6   GPF5   GPF4 
//nLED_1 nLED2 nLED_4 nLED_3 
void Led_Display(int data) 
{ 
//    rGPFDAT = (rGPFDAT & 0xf) | !((data & 0xf)<<4); 
    rGPFDAT = (rGPFDAT & ~(0xf<<4)) | ((~data & 0xf)<<4);     
} 
 
 
//=================================================================== 
void Isr_Init(void) 
{ 
    pISR_UNDEF  = (unsigned)HaltUndef; 
    pISR_SWI    = (unsigned)HaltSwi; 
    pISR_PABORT = (unsigned)HaltPabort; 
    pISR_DABORT = (unsigned)HaltDabort; 
     
    rINTMOD     = 0x0;                     //All=IRQ mode 
    rINTMSK     = BIT_ALLMSK;              //All interrupt is masked. 
    rINTSUBMSK  = BIT_SUB_ALLMSK;          //All sub-interrupt is masked. <- April 01, 2002 SOP 
 
} 
 
//=================================================================== 
void HaltUndef(void) 
{ 
    Uart_Printf("Undefined instruction exception.\n"); 
    while(1); 
} 
 
//=================================================================== 
void HaltSwi(void) 
{ 
    Uart_Printf("SWI exception.\n"); 
    while(1); 
} 
 
//=================================================================== 
void HaltPabort(void) 
{ 
    Uart_Printf("Pabort exception.\n"); 
    while(1); 
} 
 
//=================================================================== 
void HaltDabort(void) 
{ 
    Uart_Printf("Dabort exception.\n"); 
    while(1); 
} 
 
 
 
 
 
/* 
//========================= 
    while(1) 
    { 
       Led_Display(3); 
    } 
//=========================     
*/ 
/* 
//========================= 
    while(1) 
    { 
       Led_Display(1); 
       Delay(1500);    
       Led_Display(2); 
       Delay(1500);              
       Led_Display(4); 
       Delay(1500);    
       Led_Display(8); 
       Delay(1500);                 
    } 
//=========================    
*/