关闭

ADC Demo

596人阅读 评论(0) 收藏 举报

ADCActivity.java

  1. package com.mini6410.ADC;  
  2.   
  3. import java.util.Timer;  
  4. import java.util.TimerTask;  
  5.   
  6. import android.app.Activity;  
  7. import android.os.Bundle;  
  8. import android.os.Handler;  
  9. import android.os.Message;  
  10. import android.util.Log;  
  11. import android.widget.TextView;  
  12.   
  13. import com.friendlyarm.AndroidSDK.HardwareControler;  
  14. import com.mini6410.R;  
  15.   
  16. /** 
  17.  *  
  18.  * ClassName:ADCActivity 
  19.  * Reason:   ADC Demo 
  20.  * 
  21.  * @author   snowdream 
  22.  * @version   
  23.  * @since    Ver 1.1 
  24.  * @Date     2011   2012-03-16      12:04 
  25.  * 
  26.  * @see       
  27.  */  
  28. public class ADCActivity extends Activity {  
  29.     private static final String TAG = "ADCActivity";  
  30.       
  31.     /*刷新UI标记*/  
  32.     public static final int Update_UI = 0;  
  33.   
  34.     /*计时器*/  
  35.     private Timer mTimer = null;  
  36.     private TimerTask mTimerTask = null;  
  37.       
  38.     /*用来显示ADC返回值的控件*/  
  39.     private TextView mTextView_ADC = null;  
  40.   
  41.     /*读取ADC的返回值*/  
  42.     private int result = 0;  
  43.   
  44.     @Override  
  45.     protected void onCreate(Bundle savedInstanceState) {  
  46.         super.onCreate(savedInstanceState);  
  47.         setContentView(R.layout.adcdemo);  
  48.   
  49.         initUI();  
  50.         initData();  
  51.     }  
  52.   
  53.     /** 
  54.      *  
  55.      * initUI: 初始化UI 
  56.      * 
  57.      * @param    
  58.      * @return      
  59.      * @throws  
  60.      */  
  61.     private void initUI() {  
  62.         mTextView_ADC = (TextView)findViewById(R.id.TextView_adcresult);  
  63.     }  
  64.   
  65.     /** 
  66.      *  
  67.      * initData: 新建定时器,每隔500ms发出消息,通知Activity刷新UI一次。 
  68.      * 
  69.      * @param    
  70.      * @return      
  71.      * @throws  
  72.      */  
  73.     private void initData() {  
  74.         mTimer = new Timer();  
  75.         mTimerTask = new TimerTask() {  
  76.             @Override  
  77.             public void run() {  
  78.                   
  79.                 /*调用底层库API读取ADC的值,正常情况下,返回ADC值,否则,出错,返回-1*/  
  80.                 result = HardwareControler.readADC();  
  81.                   
  82.                 if(-1 == result){  
  83.                     Log.e(TAG,"Read ADC Error!");  
  84.                 }else{  
  85.                     Log.i(TAG,"readADC result: "+ result);  
  86.                     mHandler.sendMessage(mHandler.obtainMessage(Update_UI));  
  87.                 }  
  88.             }  
  89.         };  
  90.         mTimer.schedule(mTimerTask, 0500);  
  91.     }  
  92.   
  93.     private Handler mHandler  = new Handler(){  
  94.         @Override  
  95.         public void handleMessage(Message msg) {  
  96.             int type = msg.what;  
  97.             switch (type) {  
  98.             case Update_UI:  
  99.                 mTextView_ADC.setText(String.valueOf(result));  
  100.                 break;  
  101.             default:  
  102.                 break;  
  103.             }  
  104.         }  
  105.   
  106.     };  
  107.   
  108.     @Override  
  109.     protected void onDestroy() {  
  110.         if(mTimer != null){  
  111.             mTimer.cancel();  
  112.             mTimer = null;  
  113.         }  
  114.         super.onDestroy();  
  115.     }  
  116.   
  117.   
  118. }  

adcdemo.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns: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.   
  7.     <TextView  
  8.         android:id="@+id/TextView_adctitle"  
  9.         android:layout_width="wrap_content"  
  10.         android:layout_height="wrap_content"  
  11.         android:gravity="center"  
  12.         android:text="@string/adcreslt"  
  13.         android:textSize="25sp" />  
  14.   
  15.     <TextView  
  16.         android:id="@+id/TextView_adcresult"  
  17.         android:layout_width="fill_parent"  
  18.         android:layout_height="130dip"  
  19.         android:gravity="center"  
  20.         android:text="0"  
  21.         android:textColor="@drawable/mediumvioletred"  
  22.         android:textSize="80sp" />  
  23.   
  24.   
  25. </LinearLayout>  

预览效果:

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:270382次
    • 积分:4822
    • 等级:
    • 排名:第5966名
    • 原创:201篇
    • 转载:19篇
    • 译文:2篇
    • 评论:33条
    文章分类
    最新评论