ADC Demo

ADCActivity.java

  1. packagecom.mini6410.ADC;
  2. importjava.util.Timer;
  3. importjava.util.TimerTask;
  4. importandroid.app.Activity;
  5. importandroid.os.Bundle;
  6. importandroid.os.Handler;
  7. importandroid.os.Message;
  8. importandroid.util.Log;
  9. importandroid.widget.TextView;
  10. importcom.friendlyarm.AndroidSDK.HardwareControler;
  11. importcom.mini6410.R;
  12. /**
  13. *
  14. *ClassName:ADCActivity
  15. *Reason:ADCDemo
  16. *
  17. *@authorsnowdream
  18. *@version
  19. *@sinceVer1.1
  20. *@Date20112012-03-1612:04
  21. *
  22. *@see
  23. */
  24. publicclassADCActivityextendsActivity{
  25. privatestaticfinalStringTAG="ADCActivity";
  26. /*刷新UI标记*/
  27. publicstaticfinalintUpdate_UI=0;
  28. /*计时器*/
  29. privateTimermTimer=null;
  30. privateTimerTaskmTimerTask=null;
  31. /*用来显示ADC返回值的控件*/
  32. privateTextViewmTextView_ADC=null;
  33. /*读取ADC的返回值*/
  34. privateintresult=0;
  35. @Override
  36. protectedvoidonCreate(BundlesavedInstanceState){
  37. super.onCreate(savedInstanceState);
  38. setContentView(R.layout.adcdemo);
  39. initUI();
  40. initData();
  41. }
  42. /**
  43. *
  44. *initUI:初始化UI
  45. *
  46. *@param
  47. *@return
  48. *@throws
  49. */
  50. privatevoidinitUI(){
  51. mTextView_ADC=(TextView)findViewById(R.id.TextView_adcresult);
  52. }
  53. /**
  54. *
  55. *initData:新建定时器,每隔500ms发出消息,通知Activity刷新UI一次。
  56. *
  57. *@param
  58. *@return
  59. *@throws
  60. */
  61. privatevoidinitData(){
  62. mTimer=newTimer();
  63. mTimerTask=newTimerTask(){
  64. @Override
  65. publicvoidrun(){
  66. /*调用底层库API读取ADC的值,正常情况下,返回ADC值,否则,出错,返回-1*/
  67. result=HardwareControler.readADC();
  68. if(-1==result){
  69. Log.e(TAG,"ReadADCError!");
  70. }else{
  71. Log.i(TAG,"readADCresult:"+result);
  72. mHandler.sendMessage(mHandler.obtainMessage(Update_UI));
  73. }
  74. }
  75. };
  76. mTimer.schedule(mTimerTask,0,500);
  77. }
  78. privateHandlermHandler=newHandler(){
  79. @Override
  80. publicvoidhandleMessage(Messagemsg){
  81. inttype=msg.what;
  82. switch(type){
  83. caseUpdate_UI:
  84. mTextView_ADC.setText(String.valueOf(result));
  85. break;
  86. default:
  87. break;
  88. }
  89. }
  90. };
  91. @Override
  92. protectedvoidonDestroy(){
  93. if(mTimer!=null){
  94. mTimer.cancel();
  95. mTimer=null;
  96. }
  97. super.onDestroy();
  98. }
  99. }

adcdemo.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <TextView
  7. android:id="@+id/TextView_adctitle"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:gravity="center"
  11. android:text="@string/adcreslt"
  12. android:textSize="25sp"/>
  13. <TextView
  14. android:id="@+id/TextView_adcresult"
  15. android:layout_width="fill_parent"
  16. android:layout_height="130dip"
  17. android:gravity="center"
  18. android:text="0"
  19. android:textColor="@drawable/mediumvioletred"
  20. android:textSize="80sp"/>
  21. </LinearLayout>

预览效果:ADC Demo