歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> S3C2440 GPIO (使用miniARM 2440)

S3C2440 GPIO (使用miniARM 2440)

日期:2017/3/1 10:35:46   编辑:Linux編程

S3C2440 GPIO (使用miniARM 2440):

  1. #ifndef LDE_H
  2. #define LED_H
  3. #include "2440addr.h"
  4. //GPB 有 PIN0 到 PIN10 共11個引腳
  5. //rGPBCON 寄存器的每兩個位控制一個IO的輸入輸出方向
  6. //其中00表示輸入
  7. // 01表示輸出
  8. // 10為使用第二功能
  9. // 11為出廠保留
  10. //***************************************************
  11. //功能:流水燈
  12. //接口: GPB5 -> LED1 低 燈亮
  13. // GPB6 -> LED2
  14. // GPB7 -> LED3
  15. // GPB8 -> LED4
  16. // GPB0 -> 蜂鳴器 高 蜂鳴器響
  17. //***************************************************
  18. extern void delay(U32 tt);
  19. extern void BeeperInit(void);
  20. extern void BeeperControl(U8 flag);
  21. extern void LedInit(void);
  22. extern void LedControl(U8 led,U8 flag );
  23. #endif

  1. #include "led.h"
  2. void delay(U32 tt)
  3. {
  4. U32 i;
  5. for(;tt>0;tt--)
  6. {
  7. for(i=0;i<10000;i++){}
  8. }
  9. }
  10. void BeeperInit(void)
  11. {
  12. //
  13. rGPBCON &= 0xfffffffc; //清除
  14. rGPBCON |= 0x00000001; //置低位為0001,使PIN0輸出
  15. }
  16. void BeeperControl(U8 flag)
  17. {
  18. if(flag)
  19. rGPBDAT |=0x00000001;
  20. else
  21. rGPBDAT &=0xfffffffe;
  22. }
  23. void LedInit(void)
  24. {
  25. //設置GPB PIN5678 輸出
  26. rGPBCON &= 0xfffc03ff;
  27. rGPBCON |= (0x00000001<<10) |(0x00000001<<12)|(0x00000001<<14)|(0x00000001<<16);
  28. //rGPBCON |= 0x155555;
  29. }
  30. void LedControl(U8 led,U8 flag )
  31. {
  32. if(flag==0)
  33. rGPBDAT &= ~(0x00000001<<(led+4));
  34. else
  35. rGPBDAT |= (0x00000001<<(led+4));
  36. }
Copyright © Linux教程網 All Rights Reserved