[Cortex-M0技术交流] [2012助学第一期]hzy41y学习笔记之三(蜂鸣器--四音警报声)

[复制链接]
2372|4
 楼主| hzy41y 发表于 2012-6-14 15:07 | 显示全部楼层 |阅读模式
  1. //基于NUC120学习套件-蜂鸣器- 四音警报声
  2. //作者:hzy41y
  3. //最后更新日期2012年06月14日15:00
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include "NUC1xx.h"
  7. #include "Driver\DrvSYS.h"
  8. #include "Driver\DrvGPIO.h"
  9. #include "DrvTimer.h"
  10. #include "hzy.h"
  11. #define Buzzer_set DrvGPIO_SetBit(E_GPB,10)
  12. #define Buzzer_clr DrvGPIO_ClrBit(E_GPB,10)

  13. //***************IO初始化*****************************
  14. void init()
  15. {DrvGPIO_Open( E_GPB, 10, E_IO_OUTPUT );
  16. Buzzer_clr;
  17. }

  18. // ***********由1.9K--3.4K--1.9k时长0.2S
  19. void Sound1()
  20. { uint16_t c_sta;
  21. uint8_t b;
  22. b=10; //循环次数
  23. while(b--)
  24. { c_sta=262;
  25. do{
  26. DrvSYS_Delay(c_sta);
  27. if(DrvGPIO_GetBit(E_GPB, 10))Buzzer_clr;
  28. else Buzzer_set;
  29. }while(147<--c_sta);

  30. c_sta=147;
  31. do{
  32. DrvSYS_Delay(c_sta);
  33. if(DrvGPIO_GetBit(E_GPB, 10))Buzzer_clr;
  34. else Buzzer_set;

  35. }while(526 > ++c_sta);
  36. DrvSYS_Delay(40000); //延时0.4s
  37. }Buzzer_clr;

  38. }

  39. // *** 上半波高低频统一为250US;由最高频114us向最低频333us
  40. void Sound2()
  41. { uint16_t c_sta;
  42. uint8_t b;
  43. b=10; //循环次数
  44. while(b--)
  45. { c_sta=114;
  46. do{
  47. Buzzer_set;
  48. DrvSYS_Delay(250);
  49. Buzzer_clr;
  50. DrvSYS_Delay(c_sta);
  51. }while(++c_sta<333) ;
  52. DrvSYS_Delay(850);
  53. }Buzzer_clr;
  54. }

  55. // * ** 上半波高低频统一为250US;由最高频333us向最低频540us
  56. void Sound3()
  57. { uint16_t c_sta;
  58. uint8_t b;
  59. b=10; //循环次数
  60. while(b--)
  61. { c_sta=333;
  62. do{
  63. Buzzer_set;
  64. DrvSYS_Delay(250);
  65. Buzzer_clr;
  66. DrvSYS_Delay(c_sta);
  67. }while(++c_sta<540) ;
  68. DrvSYS_Delay(850);
  69. }Buzzer_clr;
  70. }

  71. // *** 上半波高低频统一为300US;由最低频2180us向最高频700us
  72. void Sound4()
  73. { uint16_t c_sta;
  74. c_sta=2180;
  75. do{
  76. Buzzer_set;
  77. DrvSYS_Delay(300);
  78. Buzzer_clr;
  79. DrvSYS_Delay(c_sta);
  80. }while(--c_sta>700) ;
  81. Buzzer_clr;
  82. }

  83. /*----------------------------------------------------------------------------
  84. MAIN function
  85. ----------------------------------------------------------------------------*/
  86. int32_t main (void)
  87. {
  88. //uint8_t c_sta,i,b;
  89. //---------------------------------------------------------
  90. UNLOCKREG();
  91. SYSCLK->PWRCON.XTL12M_EN = 1;
  92. LOCKREG();
  93. init();
  94. //---------------------------------------------------------

  95. while(1)
  96. {Sound1();
  97. DrvSYS_Delay(180000);
  98. Sound2();
  99. DrvSYS_Delay(180000);
  100. Sound3();
  101. DrvSYS_Delay(180000);
  102. Sound4();
  103. }
  104. }
基于NUC120学习套件-蜂鸣器- 四音警报声
 楼主| hzy41y 发表于 2012-6-14 15:10 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
hotpower 发表于 2012-6-15 08:44 | 显示全部楼层
你的第一贴呢?顶顶起来一周返还
xyz549040622 发表于 2012-6-18 09:13 | 显示全部楼层
 楼主| hzy41y 发表于 2012-7-3 11:13 | 显示全部楼层
自顶一吓
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

75

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部