主题 : 求助关于安卓mini6410ADC默认口的更改 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 101674
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2014-03-14
最后登录: 2014-04-22
楼主  发表于: 2014-04-21 18:01

 求助关于安卓mini6410ADC默认口的更改

刚刚接触安卓,代码一知半解,在做ADC时候自己焊了个外围的可变电阻控制电压。利用了smart210中的libfriendlyarm-hardware.so  库和 com\friendlyarm\AndroidSDK\HardwareControler.java的类。引用新库里面的   static public native int readADCWithChannel(int chanel);  调用I/O口的函数。想在默认的0口改成1口读,要把这句话加在哪?试过很多次都没成功!小弟在此谢过。
以下代码来源于置顶贴开发笔记,感谢作者!!!
  
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();  
    }  
  
  
}