友善之臂Mini6410之Android开发学习笔记(3)-ADC Demo

友善之臂Mini6410之Android开发学习笔记源码同步更新,请使用git工具进行同步。关于Git工具更多信息,请参考:http://progit.org/book/zh/

git clone https://code.google.com/p/androiddemoformini6410/

ADCActivity.java

package com.mini6410.ADC;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;

import com.friendlyarm.AndroidSDK.HardwareControler;
import com.mini6410.R;

/**
 *
 * ClassName:ADCActivity
 * Reason:	 ADC Demo
 *
 * @author   snowdream
 * @version
 * @since    Ver 1.1
 * @Date	 2011	2012-03-16		12:04
 *
 * @see
 */
public class ADCActivity extends Activity {
	private static final String TAG = "ADCActivity";

	/*刷新UI标记*/
	public static final int Update_UI = 0;

	/*计时器*/
	private Timer mTimer = null;
	private TimerTask mTimerTask = null;

	/*用来显示ADC返回值的控件*/
	private TextView mTextView_ADC = null;

	/*读取ADC的返回值*/
	private int result = 0;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.adcdemo);

		initUI();
		initData();
	}

	/**
	 *
	 * initUI: 初始化UI
	 *
	 * @param
	 * @return
	 * @throws
	 */
	private void initUI() {
		mTextView_ADC = (TextView)findViewById(R.id.TextView_adcresult);
	}

	/**
	 *
	 * initData: 新建定时器,每隔500ms发出消息,通知Activity刷新UI一次。
	 *
	 * @param
	 * @return
	 * @throws
	 */
	private void initData() {
		mTimer = new Timer();
		mTimerTask = new TimerTask() {
			@Override
			public void run() {

				/*调用底层库API读取ADC的值,正常情况下,返回ADC值,否则,出错,返回-1*/
				result = HardwareControler.readADC();

				if(-1 == result){
					Log.e(TAG,"Read ADC Error!");
				}else{
					Log.i(TAG,"readADC result: "+ result);
					mHandler.sendMessage(mHandler.obtainMessage(Update_UI));
				}
			}
		};
		mTimer.schedule(mTimerTask, 0, 500);
	}

	private Handler mHandler  = new Handler(){
		@Override
		public void handleMessage(Message msg) {
			int type = msg.what;
			switch (type) {
			case Update_UI:
				mTextView_ADC.setText(String.valueOf(result));
				break;
			default:
				break;
			}
		}

	};

	@Override
	protected void onDestroy() {
		if(mTimer != null){
			mTimer.cancel();
			mTimer = null;
		}
		super.onDestroy();
	}

}

adcdemo.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/TextView_adctitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/adcreslt"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/TextView_adcresult"
        android:layout_width="fill_parent"
        android:layout_height="130dip"
        android:gravity="center"
        android:text="0"
        android:textColor="@drawable/mediumvioletred"
        android:textSize="80sp" />

</LinearLayout>

预览效果:

时间: 2024-10-30 12:12:33

友善之臂Mini6410之Android开发学习笔记(3)-ADC Demo的相关文章

友善之臂Mini6410之Android开发学习笔记(4)-EEPROM Demo

友善之臂Mini6410之Android开发学习笔记源码同步更新,请使用git工具进行同步.关于Git工具更多信息,请参考:http://progit.org/book/zh/ git clone https://code.google.com/p/androiddemoformini6410/ EEPROMActivity.java package com.mini6410.EEPROM; import android.app.Activity; import android.os.Bundl

友善之臂Mini6410之Android开发学习笔记(1)-LED Demo

友善之臂Mini6410之Android开发学习笔记源码同步更新,请使用git工具进行同步.关于Git工具更多信息,请参考:http://progit.org/book/zh/ git clone https://code.google.com/p/androiddemoformini6410/ LEDActivity.java package com.mini6410.LED; import com.friendlyarm.AndroidSDK.HardwareControler; impor

友善之臂Mini6410之Android开发学习笔记(2)-PWM Demo

友善之臂Mini6410之Android开发学习笔记源码同步更新,请使用git工具进行同步.关于Git工具更多信息,请参考:http://progit.org/book/zh/ git clone https://code.google.com/p/androiddemoformini6410/ PWMActivity.java package com.mini6410.PWM; import android.app.Activity; import android.os.Bundle; imp

Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式_Android

本文将讲解如何通过codecogs.com和Google.com提供的API接口来将LaTeX数学函数表达式转化为图片形式.具体思路如下:       (1)通过EditText获取用户输入的LaTeX数学表达式,然后对表达式格式化使之便于网络传输.       (2)将格式化之后的字符串,通过Http请求发送至codecogs.com或者Google.com.       (3)获取网站返回的数据流,将其转化为图片,并显示在ImageView上. 具体过程为: 1.获取并格式化LaTeX数学表

android 开发学习笔记 -------- 编译环境的配置

前言:                   android开发环境的配置是一个经常出现在博客的话题,这里重复别人的内容的同时也是提醒自己记住一些基础的知识.          基本上每一个成熟的平台的源码包都会附带一个编译环境配置的文档,内容大同小异,这里仅就主要的内容描述如下: 正文:       1.   安装linux操作系统,建议安装 ubuntu LTS版本,地址:http://www.ubuntu.com.cn/download . 2.   需要的编译器:Python:GNU Ma

Android开发学习笔记 Gallery和GridView浅析_Android

一.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息.Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果. Gallery常用的XML属性 属性名称 描述 android:animationDuration 设置布局变化时动画的转换所需的时间(毫秒级).仅在动画开始时计时.该值必须是整数,比如:100. android:gravity 指定在对象的X和Y轴上如何放置内

Android开发学习笔记 Gallery和GridView浅析

一.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息.Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果. Gallery常用的XML属性 属性名称 描述 android:animationDuration 设置布局变化时动画的转换所需的时间(毫秒级).仅在动画开始时计时.该值必须是整数,比如:100. android:gravity 指定在对象的X和Y轴上如何放置内

Android开发学习笔记 浅谈WebView_Android

第一种方法的步骤: 1.在要Activity中实例化WebView组件:WebView webView = new WebView(this); 2.调用WebView的loadUrl()方法,设置WevView要显示的网页:   互联网用:webView.loadUrl("http://www.google.com");   本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets

Android开发学习笔记 浅谈WebView

第一种方法的步骤: 1.在要Activity中实例化WebView组件:WebView webView = new WebView(this); 2.调用WebView的loadUrl()方法,设置WevView要显示的网页:   互联网用:webView.loadUrl("http://www.google.com");   本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets