블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

ARM Cortex M0 - GPIO

C언어,ARM / 2016. 3. 7. 16:10

W7500x.h



CS – CMOS/Schmitt trigger input buffer select

P - PAD

YA – Analog Input (connect to ADC input)

Y – Digital Input 

IE – Input buffer enable 

     인터럽트가 아니고, 입력버퍼.

     1일때,  루프백신호 Y가 활성화 된다.(출력신호가 다시 들어옴. 어디다 쓰지?)

CS – CMOS/Schmitt trigger input buffer select 

PU – Pull-up enable 

A – Digital Output 

DS – Driving strength select

      L일때, 속도가 더 빠르다.




GPIO관련 레지스터는 3가지.


#define GPIOA   ((GPIO_TypeDef *) (GPIOA_BASE) )

#define GPIOB   ((GPIO_TypeDef *) (GPIOB_BASE) )

#define GPIOC   ((GPIO_TypeDef *) (GPIOC_BASE) )


#define PA_AFSR ((P_Port_Def *)   (P_AFSR_BASE + 0x00000000UL))  /* PA_XX Pad Alternate Function Select Register */

#define PB_AFSR ((P_Port_Def *)   (P_AFSR_BASE + 0x00000040UL))  /* PB_XX Pad Alternate Function Select Register */

#define PC_AFSR ((P_Port_Def *)   (P_AFSR_BASE + 0x00000080UL))  /* PC_XX Pad Alternate Function Select Register */


#define PA_PCR  ((P_Port_Def *)   (P_PCR_BASE + 0x00000000UL))   /* PA_XX Pad Control Register */

#define PB_PCR  ((P_Port_Def *)   (P_PCR_BASE + 0x00000040UL))   /* PB_XX Pad Control Register */

#define PC_PCR  ((P_Port_Def *)   (P_PCR_BASE + 0x00000080UL))   /* PC_XX Pad Control Register */



typedef struct
{
  __IO   uint32_t  DATA;            /* DATA Register (R/W),                        offset : 0x000 */ 
  __IO   uint32_t  DATAOUT;         /* Data Output Latch Register (R/W),           offset : 0x004 */
         uint32_t  RESERVED0[2];    
  __IO   uint32_t  OUTENSET;        /* Output Enable Set Register  (R/W)           offset : 0x010 */ 
  __IO   uint32_t  OUTENCLR;        /* Output Enable Clear Register  (R/W)         offset : 0x014 */ 
  __IO   uint32_t  RESERVED1;       /* Alternate Function Set Register  (R/W)      offset : 0x018 */ 
  __IO   uint32_t  RESERVED2;       /* Alternate Function Clear Register  (R/W)    offset : 0x01C */ 
  __IO   uint32_t  INTENSET;        /* Interrupt Enable Set Register  (R/W)        offset : 0x020 */ 
  __IO   uint32_t  INTENCLR;        /* Interrupt Enable Clear Register  (R/W)      offset : 0x024 */ 
  __IO   uint32_t  INTTYPESET;      /* Interrupt Type Set Register  (R/W)          offset : 0x028 */ 
  __IO   uint32_t  INTTYPECLR;      /* Interrupt Type Clear Register  (R/W)        offset : 0x02C */ 
  __IO   uint32_t  INTPOLSET;       /* Interrupt Polarity Set Register  (R/W)      offset : 0x030 */ 
  __IO   uint32_t  INTPOLCLR;       /* Interrupt Polarity Clear Register  (R/W)    offset : 0x034 */ 
  union {                       
    __I    uint32_t  INTSTATUS;     /* Interrupt Status Register (R/ )             offset : 0x038 */ 
    __O    uint32_t  INTCLEAR;      /* Interrupt Clear Register ( /W)              offset : 0x038 */
    }Interrupt;
         uint32_t RESERVED3[241];
  __IO   uint32_t LB_MASKED[256];   /* Lower byte Masked Access Register (R/W)     offset : 0x400 - 0x7FC  */
  __IO   uint32_t UB_MASKED[256];   /* Upper byte Masked Access Register (R/W)     offset : 0x800 - 0xBFC  */
} GPIO_TypeDef;



8비트 CPU보다 훨씬 복잡해보인다..

'C언어,ARM' 카테고리의 다른 글

ARM Cortex M0 - W7500 인터럽트  (0) 2016.03.07
CMSIS-DAP  (0) 2016.03.07
Tightly Coupled Memory  (0) 2016.02.29
mini_file_system  (0) 2016.02.01
C언어 함수  (1) 2016.01.31
Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함