Microprocessor/ARM7 ARM 자료 ( PC와 캐릭터 LCD 송/수신 / DD RAM ADDRESS ) [20120823]
  • 728x90
    반응형

       

       

       

       

     

     

     

     

     컴퓨터로 수신받아 캐릭터 LCD 글자 출력

       

       

     

     

     

       

    Ex) main 함수

    #include "arm.h"
    #include "led.h"
    #include "aic.h"
    #include "ultra.h"
    #include "lcd.h"
    #include "dbgu.h"


    void Init(void);    

    int main()
    {
      
    unsigned char UC_char;
      
      Init();
      
    while(1)
      {
         UC_char = DBGU_Rchar ();
         LCD_data(UC_char);
      }
      
      
    while(1);
      
    return 0;
    }


    void Init(void)
    {    
      init_LCD();
      Init_DBGU();
      
      
    return ;
    }

       

     

     

     

     

     

     

       

       

    Ex) DBGU 함수

    #include "arm.h"
    #include "dbgu.h"



    void DBGU_string(unsigned char *ucstring)
    {
      
    if( ucstring == 0 )
      {
        
    return ;
      }
      
    while( *ucstring != 0)
      {
        
    while(0==( DBGU_SR & (1<<TXRDY)));
        DBGU_THR = *ucstring;

        ++ucstring;

      }

      
    return ;
    }

    unsigned char DBGU_Rchar ()
    {
      
    while(0==( DBGU_SR & (1<<RXRDY)));
      
    return DBGU_RHR;   
    }


    void Init_DBGU()//
    송수신이 가능해지게 초기화 하는 함수 
    {
      /* 
     셋팅  */
      DBGU_CR = (1 << RSTRX) |(1 << RSTTX); 

     //Receiver and Trnasmitter is Reset  수신 리셋 걸어 스톱 
      DBGU_IDR = (1<<RXRDY) |(1<<TXRDY) |(1<<ENDRX) |(1<<ENDTX) |
        (1<<OVRE) |(1<<FRAME) |(1<<PARE) |(1<<TXEMPTY) |(1<<TXBUFE) |
        (1<<RXBUFF) |(1<<COMMTX) |(1<<COMMRX);               //all Interrupt Disable
        

      PIO_ASR =
     (1<<DRXD) | (1<<DTXD);//A
    모드 선택 
      PIO_PDR = (1<<DRXD) | (1<<DTXD);//PIO 
    비활성화 레지스터 
      /* 
    전송 속도 결정통신모드 설정 */
      DBGU_BRGR = 26;//
    전송속도 결정  26 넣으면 115200 초당 14KB 정도.
      DBGU_MR = 0x00000000;  //
    이거슨 모드 레지스터 Normal Mode, Even Parity
      /* DMA
    기능 오프  */

      PERIPH_PTCR = (1<<RXTDIS) | (1<<TXTDIS);  //DMC Disable
      DBGU_CR = (1<<RXEN) | (1<<TXEN);
      

      
    return ;
    }

       

       

     

     

     

     

     

       

    Ex) LCD 함수

    #include "arm.h"
    #include "lcd.h"


    void init_LCD(void)
    {
      PMC_PCER = 1 << PIOA;     
      PIO_OWER = LCD_ALL;    // I/O 
    기능 선택
      PIO_PER  = LCD_ALL;    // pin 
    활성화
      PIO_OER  =  LCD_ALL;    // IO 
    출력 기능 활성화

      LCD_Init();

      
    return ;
    }


    /*  LCD CLEAR 
    기능 함수    */
    void LCD_CLEAR(void)
    {
      
    volatile unsigned int dly;
      PIO_CODR = LCD_ALL;    // LCD_ALL 
     Low  변환 한다.
      PIO_SODR = LCD_EN;    // LCD_EN(E)
     Hight 엣지상태로 만든다.
      EMB_delay(100000);
      PIO_SODR = LCD_DB(0x01);     
      EMB_delay(100000);    // t_AS : 40 ns min 
    정도의 시간을 번다.
      PIO_CODR = LCD_EN;    // LCD_ALL 
     Low  변환 한다.

      EMB_delay(100000);

      
    return ;
    }


    void LCD_Init(void)
    {
      LCD_inst(Function_set);
      LCD_inst(Entry_Mode);
      LCD_inst(Cursor_Dis);
      LCD_inst(Display_on_off);
      LCD_inst(Clear_Dis);
      LCD_inst(RETURN_Home);

      
    return;
    }



    void LCD_return(void)
    {
      
    volatile unsigned int dly;
      PIO_CODR = LCD_ALL;
      PIO_SODR = LCD_EN;
      EMB_delay(100000);
      PIO_SODR = LCD_DB(0x02);
      EMB_delay(100000);
      PIO_CODR = LCD_EN;

      EMB_delay(100000);
      
    return ;
    }
      


    void LCD_inst(unsigned char UC_inst)
    {
      
    volatile unsigned int dly;
      PIO_CODR = LCD_ALL;        // LCD_ALL 
     Low  변환 한다.
      PIO_SODR = LCD_EN;        // LCD_EN(E)
     Hight 엣지상태로 만든다.
      EMB_delay(LCD_Delay1);
      PIO_SODR = LCD_DB(UC_inst);    

      EMB_delay(LCD_Delay2);        // t_AS : 40 ns min 정도의 시간을 번다.
      PIO_CODR = LCD_EN;        // LCD_ALL 
     Low  변환 한다.

      EMB_delay(LCD_Delay3);

      
    return ;
    }

    void LCD_data(unsigned char UC_data)
    {
      
    volatile unsigned int dly;
      PIO_CODR = LCD_ALL;        // LCD_ALL 
     Low  변환 한다.
      PIO_SODR = LCD_RS;        // 
    글자전송  
      PIO_SODR = LCD_EN;        // LCD_EN(E)
     Hight 엣지상태로 만든다.
      EMB_delay(LCD_Delay1);
      PIO_SODR = LCD_DB(UC_data);     
      EMB_delay(LCD_Delay2);        // t_AS : 40 ns min 
    정도의 시간을 번다.
      PIO_CODR = LCD_EN;        // LCD_ALL 
     Low  변환 한다.

      EMB_delay(LCD_Delay3);

      
    return ;
    }


    void LCD_String(void *vp)
    {
      
    while(0 != (*((unsigned char *)vp)) )
      {
        LCD_data( (*((
    unsigned char *)vp)) );
        vp = ((
    unsigned char *)vp) +1;
      }


      
    return ;
    }

       

       

       

       

     

     

       

       

       

       

     

     

       

    하이퍼 터미널을 이용하여 ARM 통신 설정후 키보드로 입력하면 LCD 출력 된다.

       

       

     

     

     

       

    < 실행 결과 >

     

       

       

       

       

       

       

       

       

       

       

       

     

     

     

     

     캐릭터 LCD 2Line :: BackSpace 구현

       

       

       

     

       

    Ex) 위의 LCD 함수 에서 추가

       

    void LCD_Position(unsigned char UC_Pos)
    {
      UC_Pos = 0x80 | ((UC_Pos)&0x4F);
      LCD_inst(UC_Pos);

      
    return ;
    }

       

       

       

     

       

       

       

       

       

     

     

       

       

     

     

     

       

    함수는 LCD 2개의 Line 사용할수 있도록 주소값을 세팅해준다.

       

       

     

    DBGU 함수는 예제와 동일함.

       

       

     

     

       

    Ex) main 함수

    #include "arm.h"
    #include "led.h"
    #include "aic.h"
    #include "ultra.h"
    #include "lcd.h"
    #include "dbgu.h"


    void Init(void);    

    int main()
    {
      
    unsigned char UC_char;
      
    unsigned int I_LCD_count = 0;
      
      Init();
      
    while(1)
      {
         UC_char = DBGU_Rchar ();   
         
    if( UC_char == 8 )
         {  
           
    if( I_LCD_count == 0x40 )
           {
            LCD_Position(0x10);
            I_LCD_count = 0x10;
           }
          
    else if(I_LCD_count == 0)
          {
            LCD_Position(0x50);
            I_LCD_count = 0x50;
          }
            
           --I_LCD_count;
          LCD_Position(I_LCD_count);
          UC_char = ' ';
          LCD_data(UC_char);
          LCD_Position(I_LCD_count);
        
         }
         
    else
         {
           LCD_data(UC_char);
           ++I_LCD_count;
         }
         
    if0x4< I_LCD_count )
         {
          LCD_return();
          I_LCD_count = 0;
         }
         
    else if0x10 == I_LCD_count)
         {
          LCD_Position(0x40);
          I_LCD_count = 0x40;
         }  
       
         
      }
      
      
    while(1);
      
    return 0;
    }


    void Init(void)
    {    
      init_LCD();
      Init_DBGU();
      
      
    return ;
    }

       

       

     

     

     

     

       

    < 실행 결과 >

       


              

       

    [ 위에서 사용된 헤더파일 ]

     

       

    Ex) 헤더파일

    ////////////////////////////////////////////////////////////////////////////
    ///////////                [ 2012. 07. 18.By.L ]                  //////////
    ///////////      /REF ::  6175G.ATARM.22- Nov- 60 ::SPEC       //////////
    ////////////////////////////////////////////////////////////////////////////
    #ifndef __ARM_H__
    #define __ARM_H__



    /*==============================================================================
    [ Parallel Input Output Controller ( PIO > : SPEC :: P.88 ]=====================
    ===============================================================================*/

    #define   PIO_PER    (*((volatile unsigned int *)0xFFFFF400)) 
    #define    PIO_PDR    (*((volatile unsigned int *)0xFFFFF404))// PIO Disable Register
    #define    PIO_PSR    (*((volatile unsigned int *)0xFFFFF408))// PIO Status Register(1)
    //<Reserved>===================================================
    #define    PIO_OER    (*((volatile unsigned int *)0xFFFFF410))  
    #define    PIO_ODR    (*((volatile unsigned int *)0xFFFFF414))   
    #define    PIO_OSR    (*((volatile unsigned int *)0xFFFFF418))  
    //<Reserved>===================================================
    #define    PIO_IFER  (*((volatile unsigned int *)0xFFFFF420))   
    #define    PIO_IFDR  (*((volatile unsigned int *)0xFFFFF424))   
    #define    PIO_IFSR  (*((volatile unsigned int *)0xFFFFF428))   
    //<Reserved>===================================================
    #define    PIO_SODR  (*((volatile unsigned int *)0xFFFFF430))  

    #define    PIO_CODR  (*((volatile unsigned int *)0xFFFFF434))   
    #define    PIO_ODSR  (*((volatile unsigned int *)0xFFFFF438)) 

    #define    PIO_PDSR  (*((volatile unsigned int *)0xFFFFF43C)) 

    #define    PIO_IER    (*((volatile unsigned int *)0xFFFFF440))   
    #define    PIO_IDR    (*((volatile unsigned int *)0xFFFFF444))  
    #define    PIO_IMR    (*((volatile unsigned int *)0xFFFFF448)) 
    #define    PIO_ISR    (*((volatile unsigned int *)0xFFFFF44C))  
    #define    PIO_MDER  (*((volatile unsigned int *)0xFFFFF450))  
    #define    PIO_MDDR  (*((volatile unsigned int *)0xFFFFF454))  
    #define    PIO_MDSR  (*((volatile unsigned int *)0xFFFFF458))  
    //<Reserved>===================================================
    #define    PIO_PUDR  (*((volatile unsigned int *)0xFFFFF460)) 
    #define    PIO_PUER  (*((volatile unsigned int *)0xFFFFF464)) 
    #define    PIO_PUSR  (*((volatile unsigned int *)0xFFFFF468))  
    //<Reserved>===================================================
    #define    PIO_ASR    (*((volatile unsigned int *)0xFFFFF470))  
    #define    PIO_BSR    (*((volatile unsigned int *)0xFFFFF474))  
    #define    PIO_ABSR  (*((volatile unsigned int *)0xFFFFF478)) 
    //<Reserved>===================================================
    #define    PIO_OWER  (*((volatile unsigned int *)0xFFFFF4A0)) 
    #define    PIO_OWDR  (*((volatile unsigned int *)0xFFFFF4A4)) 

    #define    PIO_OWSR  (*((volatile unsigned int *)0xFFFFF4A8))  
    /* Notes: 1. Reset value of PIO_PSR depends on the product implementation.
          2. PIO_ODSR is Read-only or Read/Write depending on PIO_OWSR I/O lines.
          3. Reset value of PIO_PDSR depends on the level of the I/O lines.
          4. PIO_ISR is reset at 0x0. However, the first read of the register 
             may read a different value as input changes may have occurred.
          5. Only this set */


    #define    PORTA    PIO_ODSR

    /*==============================================================================
    [ Power Management Controller ( PMC ) User Interface : SPEC :: P.222 ]==========
    ===============================================================================*/

    #define    PMC_PCER  (*((volatile unsigned int *)0xFFFFFC10))  
    #define    PMC_PCDR  (*((volatile unsigned int *)0xFFFFFC14))  
    #define    PMC_PCSR  (*((volatile unsigned int *)0xFFFFFC18))  




    /*================================================================================
    [ Peripheral Identifiers : SPEC :: P.34 ]=========================================
    =================================================================================*/

    #define    AIC_FIQ        0    // Advanced Interrupt Controller
    #define    SYSC        1    // System
    #define    PIOA        2    // Parallel I/O Controller A      
    #define    ADC          4    // Analog-to Digital Converter
    #define    SPI          5    // Serial Peripheral Interface
    #define    US0          6    // USART 0
    #define    US1          7    // USART 1
    #define    SSC          8    // Synchronous Serial Controller
    #define    TWI          9    // Two-wire Interface
    #define    PWMC        10    // PWM Controller
    #define    UDP          11    // USB Device Port
    #define    TC0          12    // Timer/Counter 0
    #define    TC1          13    // Timer/Counter 1
    #define    TC2          14    // Timer/Counter 2
    #define    AIC_IRQ0      30    // Advanced Interrupt Controller
    #define    AIC_IRQ1      31    // Advanced Interrupt Controller


    /*===============================================================================
    [ Advanced Interrupt Controller (AIC) : SPEC :: P.198 ]===========================
    ================================================================================*/

    #define    AIC_SMR      ((volatile unsigned int *)0xFFFFF000)      
    #define    AIC_SMR0    (*((volatile unsigned int *)0xFFFFF000))    
    #define    AIC_SMR1    (*((volatile unsigned int *)0xFFFFF004))    
    #define    AIC_SMR2    (*((volatile unsigned int *)0xFFFFF008))    
    #define    AIC_SMR3    (*((volatile unsigned int *)0xFFFFF00C))    
    #define    AIC_SMR4    (*((volatile unsigned int *)0xFFFFF010))    
    #define    AIC_SMR5    (*((volatile unsigned int *)0xFFFFF014))    
    #define    AIC_SMR6    (*((volatile unsigned int *)0xFFFFF018))    
    #define    AIC_SMR7    (*((volatile unsigned int *)0xFFFFF01C))    
    #define    AIC_SMR8    (*((volatile unsigned int *)0xFFFFF020))    
    #define    AIC_SMR9    (*((volatile unsigned int *)0xFFFFF024))    
    #define    AIC_SMR10    (*((volatile unsigned int *)0xFFFFF028))    
    #define    AIC_SMR11    (*((volatile unsigned int *)0xFFFFF02C))    
    #define    AIC_SMR12    (*((volatile unsigned int *)0xFFFFF030))    
    #define    AIC_SMR13    (*((volatile unsigned int *)0xFFFFF034))    
    #define    AIC_SMR14    (*((volatile unsigned int *)0xFFFFF038))    
    #define    AIC_SMR15    (*((volatile unsigned int *)0xFFFFF03C))    
    #define    AIC_SMR16    (*((volatile unsigned int *)0xFFFFF040))    
    #define    AIC_SMR17    (*((volatile unsigned int *)0xFFFFF044))    
    #define    AIC_SMR18    (*((volatile unsigned int *)0xFFFFF048))    
    #define    AIC_SMR19    (*((volatile unsigned int *)0xFFFFF04C))    
    #define    AIC_SMR20    (*((volatile unsigned int *)0xFFFFF050))    
    #define    AIC_SMR21    (*((volatile unsigned int *)0xFFFFF054))
    #define    AIC_SMR22    (*((volatile unsigned int *)0xFFFFF058))
    #define    AIC_SMR23    (*((volatile unsigned int *)0xFFFFF05C))
    #define    AIC_SMR24    (*((volatile unsigned int *)0xFFFFF060))
    #define    AIC_SMR25    (*((volatile unsigned int *)0xFFFFF064))
    #define    AIC_SMR26    (*((volatile unsigned int *)0xFFFFF068))
    #define    AIC_SMR27    (*((volatile unsigned int *)0xFFFFF06C))
    #define    AIC_SMR28    (*((volatile unsigned int *)0xFFFFF070))
    #define    AIC_SMR29    (*((volatile unsigned int *)0xFFFFF074))
    #define    AIC_SMR30    (*((volatile unsigned int *)0xFFFFF078))
    #define    AIC_SMR31    (*((volatile unsigned int *)0xFFFFF07C))
      
    #define    AIC_SVR      ((volatile unsigned int *)0xFFFFF080)     
    #define    AIC_SVR0    (*((volatile unsigned int *)0xFFFFF080))  
    #define    AIC_SVR1    (*((volatile unsigned int *)0xFFFFF084))
    #define    AIC_SVR2    (*((volatile unsigned int *)0xFFFFF088))
    #define    AIC_SVR3    (*((volatile unsigned int *)0xFFFFF08C))
    #define    AIC_SVR4    (*((volatile unsigned int *)0xFFFFF090))
    #define    AIC_SVR5    (*((volatile unsigned int *)0xFFFFF094))
    #define    AIC_SVR6    (*((volatile unsigned int *)0xFFFFF098))
    #define    AIC_SVR7    (*((volatile unsigned int *)0xFFFFF09C))
    #define    AIC_SVR8    (*((volatile unsigned int *)0xFFFFF0A0))
    #define    AIC_SVR9    (*((volatile unsigned int *)0xFFFFF0A4))
    #define    AIC_SVR10    (*((volatile unsigned int *)0xFFFFF0A8))
    #define    AIC_SVR11    (*((volatile unsigned int *)0xFFFFF0AC))
    #define    AIC_SVR12    (*((volatile unsigned int *)0xFFFFF0B0))
    #define    AIC_SVR13    (*((volatile unsigned int *)0xFFFFF0B4))
    #define    AIC_SVR14    (*((volatile unsigned int *)0xFFFFF0B8))
    #define    AIC_SVR15    (*((volatile unsigned int *)0xFFFFF0BC))
    #define    AIC_SVR16    (*((volatile unsigned int *)0xFFFFF0C0))
    #define    AIC_SVR17    (*((volatile unsigned int *)0xFFFFF0C4))
    #define    AIC_SVR18    (*((volatile unsigned int *)0xFFFFF0C8))
    #define    AIC_SVR19    (*((volatile unsigned int *)0xFFFFF0CC))
    #define    AIC_SVR20    (*((volatile unsigned int *)0xFFFFF0D0))
    #define    AIC_SVR21    (*((volatile unsigned int *)0xFFFFF0D4))
    #define    AIC_SVR22    (*((volatile unsigned int *)0xFFFFF0D8))
    #define    AIC_SVR23    (*((volatile unsigned int *)0xFFFFF0DC))
    #define    AIC_SVR24    (*((volatile unsigned int *)0xFFFFF0E0))
    #define    AIC_SVR25    (*((volatile unsigned int *)0xFFFFF0E4))
    #define    AIC_SVR26    (*((volatile unsigned int *)0xFFFFF0E8))
    #define    AIC_SVR27    (*((volatile unsigned int *)0xFFFFF0EC))
    #define    AIC_SVR28    (*((volatile unsigned int *)0xFFFFF0F0))
    #define    AIC_SVR29    (*((volatile unsigned int *)0xFFFFF0F4))
    #define    AIC_SVR30    (*((volatile unsigned int *)0xFFFFF0F8))
    #define    AIC_SVR31    (*((volatile unsigned int *)0xFFFFF0FC))
    #define    AIC_IVR      (*((volatile unsigned int *)0xFFFFF100))     
    #define    AIC_FVR      (*((volatile unsigned int *)0xFFFFF104))     
    #define    AIC_ISR      (*((volatile unsigned int *)0xFFFFF108))     
    #define    AIC_IPR      (*((volatile unsigned int *)0xFFFFF10C))     
    #define    AIC_IMR      (*((volatile unsigned int *)0xFFFFF110))     
    #define    AIC_CISR    (*((volatile unsigned int *)0xFFFFF114))     
    //<Reserved>===================================================
    //<Reserved>===================================================
    #define    AIC_IECR    (*((volatile unsigned int *)0xFFFFF120))    
    #define    AIC_IDCR    (*((volatile unsigned int *)0xFFFFF124))     
    #define    AIC_ICCR    (*((volatile unsigned int *)0xFFFFF128))     
    #define    AIC_ISCR    (*((volatile unsigned int *)0xFFFFF12C))     
    #define    AIC_EOICR    (*((volatile unsigned int *)0xFFFFF130))     
    #define    AIC_SPU      (*((volatile unsigned int *)0xFFFFF134))    

    #define    AIC_DCR      (*((volatile unsigned int *)0xFFFFF138))     
    //<Reserved>==================================================
    #define    AIC_FFER    (*((volatile unsigned int *)0xFFFFF140)) 
    #define    AIC_FFDR    (*((volatile unsigned int *)0xFFFFF144)) 
    #define    AIC_FFSR    (*((volatile unsigned int *)0xFFFFF148) 

    #define    PRIOR    0
    #define    SRCTYPE    5
    #define    AIC_SRCTYPE_INT_HIGH_LEVEL    2
    #define    AIC_PRIOR_LOWEST    0


    /*============================================================
    [ Timer/Counter (TC) : SPEC :: P.405 ]========================= 
    ==============================================================*/

    #define    TC_CCR    (*((volatile unsigned int *)0xFFFA0000))
    #define    TC_CMR    (*((volatile unsigned int *)0xFFFA0004))
    //<Reserved>==================================================
    //<Reserved>==================================================
    #define    TC_CV    (*((volatile unsigned int *)0xFFFA0010))
    #define    TC_RA    (*((volatile unsigned int *)0xFFFA0014))
    #define    TC_RB    (*((volatile unsigned int *)0xFFFA0018))
    #define    TC_RC    (*((volatile unsigned int *)0xFFFA001C))
    #define    TC_SR    (*((volatile unsigned int *)0xFFFA0020))
    #define    TC_IER    (*((volatile unsigned int *)0xFFFA0024))
    #define    TC_IDR    (*((volatile unsigned int *)0xFFFA0028))
    #define    TC_IMR    (*((volatile unsigned int *)0xFFFA002C))
    //<Reserved>==================================================
    //[ TC_CCR ]==================================================
    #define    CLKEN    0
    #define    CLKDIS    1
    #define    SWTRG    2
    //[ TC_IDR ]==================================================
    #define    COVFS    0
    #define    LOVRS    1
    #define    CPAS    2
    #define    CPBS    3
    #define    CPCS    4
    #define    LDRAS    5
    #define    LDRBS    6  
    #define    ETRGS    7
    //[ TC_SR ]===================================================
    #define    CLSKSTA    16
    #define    MTIOA    17
    #define    MTIOB    18
    //[ TC_CMR ]==================================================
    #define   TCCLKS    0
    #define    CLKI    3
    #define    BURST    4
    #define    LDBSTOP    6
    #define    LDBDIS    7
    #define    ETRGEDG    8
    #define    ABETRG    10
    #define    CPCTRG    14
    #define    WAVE    15
    #define    LDRA    16

    #define  TIMER_CLOCK5  4
    #define  TIMER_CLOCK1  0




    /*===============================================================
    [ Debug Unit (DBGU) : SPEC :: P.247 ]============================ 
    =================================================================*/


    //< DBGU 
    함수 정의 >===============================================
    #define    DBGU_CR    *((volatile unsigned int *) 0xFFFFF200)
    #define    DBGU_MR    *((volatile unsigned int *) 0xFFFFF204)

    #define    DBGU_IER  *((volatile
     unsigned int *) 0xFFFFF208)

    #define    DBGU_IDR  *((volatile
     unsigned int *) 0xFFFFF20C)

    #define    DBGU_IMR  *((volatile
     unsigned int *) 0xFFFFF210)

    #define
        DBGU_SR    *((volatile unsigned int *) 0xFFFFF214)

    #define    DBGU_RHR  *((volatile unsigned int *) 0xFFFFF218)
    #define    DBGU_THR  *((volatile unsigned int *) 0xFFFFF21C)
    #define    DBGU_BRGR  *((volatile unsigned int *) 0xFFFFF220)
    #define    DBGU_CIDR  *((volatile unsigned int *) 0xFFFFF240)
    #define    DBGU_EXID  *((volatile unsigned int *) 0xFFFFF244)
    #define    DBGU_FNR  *((volatile unsigned int *) 0xFFFFF248)
    //=================================================================
    #define   PERIPH_PTCR  *((volatile unsigned int *) 0xFFFFF320)
    #define    PERIPH_PTSR  *((volatile unsigned int *) 0xFFFFF324)
    //[ DBGU_CR]>======================================================
    #define  RSTRX    2
    #define  RSTTX    3
    #define  RXEN    4
    #define  RXDIS    5
    #define  TXEN    6
    #define  TXDIS    7
    #define  RSTSTA    8
    //[ DBGU_IDR ]=====================================================
    #define  RXRDY     0
    #define  TXRDY     1
    #define  ENDRX     3
    #define  ENDTX     4
    #define  OVRE     5
    #define  FRAME     6
    #define  PARE     7
    #define  TXEMPTY   9
    #define  TXBUFE     11
    #define  RXBUFF     12
    #define  COMMTX     30
    #define  COMMRX     31
    //=================================================================
    #define  DRXD    9
    #define  DTXD    10
    //=================================================================
    #define  RXTDIS    1
    #define  TXTDIS    9



    /*==================================================================
    <ADC> : SPEC :: P.247 ]=========================================== 
    ====================================================================*/

    #define ADC_CR      *((volatile unsigned int *)0xFFFD8000)
    #define ADC_MR      *((volatile unsigned int *)0xFFFD8004)
    #define ADC_CHER    *((volatile unsigned int *)0xFFFD8010)
    #define ADC_CHDR    *((volatile unsigned int *)0xFFFD8014)
    #define ADC_CHSR    *((volatile unsigned int *)0xFFFD8018)
    #define ADC_SR      *((volatile unsigned int *)0xFFFD801C)
    #define ADC_LCDR    *((volatile unsigned int *)0xFFFD8020)
    #define ADC_IER      *((volatile unsigned int *)0xFFFD8024)
    #define ADC_IDR      *((volatile unsigned int *)0xFFFD8028)
    #define ADC_IMR      *((volatile unsigned int *)0xFFFD802C)
    #define ADC_CDR0    *((volatile unsigned int *)0xFFFD8030)
    #define ADC_CDR1    *((volatile unsigned int *)0xFFFD8034)
    #define ADC_CDR2    *((volatile unsigned int *)0xFFFD8038)
    #define ADC_CDR3    *((volatile unsigned int *)0xFFFD803C)
    #define ADC_CDR4    *((volatile unsigned int *)0xFFFD8040)
    #define ADC_CDR5    *((volatile unsigned int *)0xFFFD8044)
    #define ADC_CDR6    *((volatile unsigned int *)0xFFFD8048)
    #define ADC_CDR7    *((volatile unsigned int *)0xFFFD804C)
    //=================================================================
    #define  ADC_ID    4  // ADC 
    활성 ID ( 기본적으로 켜져있다. )
    #define SWRST    0  // Software  Reset
    #define  START    1  // Start Conversion( 
    변환 >
    #define CH7      7  // 7
     체널 

    //[ ADC Mode Register ]============================================
    #define TRGEN    0
    #define TRGSEL    0
    #define LOWRES    4
    #define SLEEP    5
    #define PRESCAL    8
    #define STARTUP    16
    #define SHTIM    24
    //[ ADC_SR ]=======================================================
    #define EOC7    7
    #define DRDY    16
    //[ ADC_LCDR ]=====================================================
    #define LDATA    0




    /*==============================================================
    <LCD> : SPEC ::  ]============================================= 
    ===================================================================*/

    #define    LCD_RS    (1<<29)
    #define    LCD_RW    (1<<30)
    #define    LCD_EN    (1<<31)
    #define    LCD_BS    0x00FF0000
    #define    LCD_ALL    (LCD_RS | LCD_RW | LCD_EN | LCD_BS)
    #define    RETURN_Home  0x02
    /*    LCD 
    데이터 버스 메크로    */
    #define    LCD_DB(x)  ((x)<<(16))
    #endif // __ARM_H__

       

       

       

       

       

       

       

     

     

     

    728x90
    반응형
상단으로