S3C2440 GPIO (使用miniARM 2440):
- #ifndef LDE_H
- #define LED_H
-
- #include "2440addr.h"
- //GPB 有 PIN0 到 PIN10 共11個引腳
- //rGPBCON 寄存器的每兩個位控制一個IO的輸入輸出方向
- //其中00表示輸入
- // 01表示輸出
- // 10為使用第二功能
- // 11為出廠保留
- //***************************************************
-
- //功能:流水燈
- //接口: GPB5 -> LED1 低 燈亮
- // GPB6 -> LED2
- // GPB7 -> LED3
- // GPB8 -> LED4
- // GPB0 -> 蜂鳴器 高 蜂鳴器響
- //***************************************************
- extern void delay(U32 tt);
- extern void BeeperInit(void);
- extern void BeeperControl(U8 flag);
- extern void LedInit(void);
- extern void LedControl(U8 led,U8 flag );
- #endif
- #include "led.h"
-
- void delay(U32 tt)
- {
- U32 i;
- for(;tt>0;tt--)
- {
- for(i=0;i<10000;i++){}
- }
-
- }
- void BeeperInit(void)
- {
- //
- rGPBCON &= 0xfffffffc; //清除
- rGPBCON |= 0x00000001; //置低位為0001,使PIN0輸出
- }
- void BeeperControl(U8 flag)
- {
- if(flag)
- rGPBDAT |=0x00000001;
- else
- rGPBDAT &=0xfffffffe;
- }
- void LedInit(void)
- {
- //設置GPB PIN5678 輸出
- rGPBCON &= 0xfffc03ff;
- rGPBCON |= (0x00000001<<10) |(0x00000001<<12)|(0x00000001<<14)|(0x00000001<<16);
- //rGPBCON |= 0x155555;
- }
- void LedControl(U8 led,U8 flag )
- {
- if(flag==0)
- rGPBDAT &= ~(0x00000001<<(led+4));
- else
- rGPBDAT |= (0x00000001<<(led+4));
- }