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>

预览效果:

### 关于 PLECS 的 ADC 示例或教程 PLECS 是一种强大的仿真工具,主要用于电力电子系统的建模和分析。它提供了丰富的组件库来支持各种电路设计需求。针对用户的查询——关于 PLECS 中的 ADC(模拟-数字转换器)示例或教程,以下是详细的解答: #### 1. **PLECS 官方资源** PLECS 提供了官方文档和支持页面,其中包含了大量示例模型和技术指南。这些资源可以帮助用户快速入门并深入理解如何实现特定功能,比如 ADC 建模[^2]。 - 用户可以访问 PLECS 官网的技术支持部分,下载相关的参考手册以及示例项目文件。 - 特别是在其示例模型库中,可能已经存在与 ADC 功能类似的模块化应用案例。通过加载这些预定义的模型,可以直接观察到 ADC 如何被集成到更大的系统框架之中。 #### 2. **MATLAB/Simulink 集成下的 ADC 实现方法** 如果正在使用 MATLAB 和 Simulink 平台,则可以通过联合调用的方式完成复杂的信号处理流程。具体而言,在构建包含 ADC 单元的电路时,通常遵循如下逻辑结构[^3]: ```matlab % 创建一个新的Simulink模型窗口 new_system('adc_example'); % 添加必要的模块至当前工作区 add_block('plecs/Blocks/Analog Input', 'adc_example/AI'); add_block('simulink/Sources/Step', 'adc_example/Input Signal'); add_block('simulink/Sinks/Scope', 'adc_example/Ouput Display'); % 设置参数配置 (例如采样时间、分辨率等) set_param('adc_example/AI','SampleTime','0.001'); % 设定为1ms周期 ``` 以上脚本片段展示了如何利用命令行操作建立基本测试环境的过程。实际开发过程中还需要进一步调整各个节点之间的连接关系及其属性设定以满足目标要求。 #### 3. **学习路径推荐** 考虑到初学者可能会面临一定的技术门槛,因此建议按照以下顺序步推进学习进程: - 掌握基础理论知识:熟悉数电混仿的基本概念及常见术语解释; - 练习简单实例验证:尝试模仿已有资料中的经典场景重现; - 自主探索创新实践:基于前期积累的经验开展原创课题研究; 值得注意的是,无论选择哪条路线前进,扎实掌握一门主流编程语言(如C++或者Python)都是不可或缺的前提条件之一[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值