当前位置:  编程技术>移动开发
本页文章导读:
    ▪jiffies机制及实则验与使用        jiffies机制及其实验与使用 全局变量jiffies用来记录自系统启动以来产生的节拍的总数。启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。一秒内时钟中.........
    ▪ FrameLayout的应用        FrameLayout的使用<?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:background.........
    ▪ OpeCV中惯用基本数据类型的定义分析之一       OpeCV中常用基本数据类型的定义分析之一Point、Size、Rect、Mat 及 Scalar、Vec、Range都是OpenCV中常用的数据类型。 Mat是最强大但也最复杂的一个,而其他类型虽然简单,但是也是最常用的,且它们.........

[1]jiffies机制及实则验与使用
    来源: 互联网  发布时间: 2014-02-18
jiffies机制及其实验与使用

全局变量jiffies用来记录自系统启动以来产生的节拍的总数。启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。一秒内时钟中断的次数等于Hz,所以jiffies一秒内增加的值也就是Hz。

系统运行时间以秒为单位,等于jiffies/Hz。

注意,jiffies类型为无符号长整型(unsigned long),其他任何类型存放它都不正确。

将以秒为单位的时间转化为jiffies:

seconds * Hz

将jiffies转化为以秒为单位的时间:

jiffies / Hz

实验使用1:记下2个函数之间的间隔。

> unsigned long lcd_on_tick;

> unsigned long lcd_off_tick;

> unsigned long lcd_keep_tick;

>         void lcd_on(void)

>        {

> lcd_on_tick=jiffies;//记下当前时间

> printk("lcd_on_tick = %ld",lcd_on_tick);}

>        void lcd_off(void)

>        {

>         lcd_off_tick=jiffies;

> printk("lcd_off_tick = %ld ",lcd_off_tick);//记下当前时间

>          lcd_keep_tick=lcd_off_tick-lcd_on_tick;

> printk("lcd_off_tick - lcd_on_tick = %ld

> ms",lcd_keep_tick*1000/HZ);//计算出2者间隔多少ms 通过log显示还是非常准的

> }

> <4>[  144.288757] lcd_on_tick = -15571

> <6>[  144.289093] lcdc_truly_gpio_init: lcdc_gpio_initialized = 1

> <6>[  144.289825] lcdc_gordon_panel_on

> <3>[  144.510650] [TP]cap_touch_screen_set_reset: Set RESET: 0

> <3>[  144.511840] [TP]cap_touch_screen_set_reset: Set RESET: 1

> <6>[  144.562561] gt818 1-005d:  Guitar Version: 0x00.0x83

> <7>[  144.570892] BATT: msm_battery_late_resume

> <4>[  144.571441] [MSM_BATT] msm_batt_set_compensation:

> batt_compensation=0

> <6>[  145.384063] request_suspend_state: sleep (0->3) at 145385327712

> (2012-09-21 11:26:02.976361082 UTC)

> <7>[  145.384277] BATT: msm_battery_early_suspend

> <4>[  145.386718] [MSM_BATT] msm_batt_set_compensation:

> batt_compensation=1

> <6>[  145.389465] Send suspend cmd

 

 

> <4>[  145.498809] lcd_off_tick = -15450 lcd_off_tick - lcd_on_tick =

> 1210 ms

 

  所以如果有需要比较2个函数执行时间间隔就有用处了,用的情况还是还多的。这里只是一点小用法。

2:设置超时

   unsigned long timeout = jiffies + tick_rate * 2; // 2秒钟后超时

   if(time_before(jiffies, timeout){

     // 还没有超时

     }

      else{

       // 已经超时

      }


    
[2] FrameLayout的应用
    来源: 互联网  发布时间: 2014-02-18
FrameLayout的使用
<?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:background="@drawable/bg"
    android:orientation="vertical" >
    <LinearLayout
            android:id="@+id/title_layout"
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:layout_alignParentTop="true"
            android:background="#40000000"
            android:orientation="vertical" >

       

            <ImageView
                android:id="@+id/title_bar"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/main_title_b"
                android:gravity="center_horizontal"
                />
          
        </LinearLayout>
    
   <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingLeft="10dip"
    android:paddingRight="10dip"
    android:paddingTop="20dip">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
  <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >
        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="4.5dip" >
<!-- 设置第一张图片 -->
                <ImageView
                    android:id="@+id/img1"
                    android:layout_width="165dip"
                    android:layout_height="165dip"
                    android:background="#fff"
                    android:padding="5dip"
                    android:src="/blog_article/@drawable/b/index.html" />
            </LinearLayout>

          
        </FrameLayout>
        
         <TextView
            android:id="@+id/text1"
             android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center_horizontal"
            android:text="图片1"
            android:textSize="14dip"
            />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >
<!-- 设置第二张图片 -->
        <ImageView
            android:id="@+id/img2"
            android:layout_width="120dip"
            android:layout_height="120dip"
            android:layout_margin="10dip"
            android:background="@drawable/four_bg"
            android:src="/blog_article/@drawable/a/index.html" />
        <TextView
            android:id="@+id/text2"
             android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center_horizontal"
            android:text="图片2"
            android:textSize="14dip"
            />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp">
          <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >
        <!-- 设置第3张图片 -->
        <ImageView android:id="@+id/img3"
        android:layout_width="120dip"
        android:layout_height="120dip"
        android:src="/blog_article/@drawable/c/index.html"
        android:layout_margin="10dip"
        android:background="@drawable/four_bg"
         />
              
        <TextView
            android:id="@+id/text3"
             android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center_horizontal"
            android:text="图片3"
            android:textSize="14dip"
            />
        </LinearLayout>
        
            <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >
        <!-- 设置第4张图片 -->
    <ImageView android:id="@+id/img4"
        android:layout_width="120dip"
        android:layout_height="120dip"
        android:src="/blog_article/@drawable/d/index.html"
        android:layout_marginTop="10dip"
        android:layout_marginLeft="35dip"
        android:background="@drawable/four_bg"
         />
     <TextView
            android:id="@+id/text4"
             android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center_horizontal"
            android:text="图片4"
            android:textSize="14dip"/>
    </LinearLayout>
    </LinearLayout>

</LinearLayout>
 

</LinearLayout>

    
[3] OpeCV中惯用基本数据类型的定义分析之一
    来源: 互联网  发布时间: 2014-02-18
OpeCV中常用基本数据类型的定义分析之一

Point、Size、Rect、Mat 及 Scalar、Vec、Range都是OpenCV中常用的数据类型。

Mat是最强大但也最复杂的一个,而其他类型虽然简单,但是也是最常用的,且它们之间有着紧密的联系,本文先分析这些简单的类型。


1. 定义这些数据类型的目的有哪些?或者有哪些好处?
    1.1 定义这些数据类型有哪些共性?
2. 这些数据类型之间的关系有哪些?如能否相互转化、几何逻辑上的操作关系等
3. 每种数据类型,有哪些定义的接口?为什么要定义这些接口?


在core.hpp中,首先定义了这些基本且重要的数据类型(数据结构)。
定义他们的目的有:
1. 存放基本数据,且采用模板的设计方式,适用于各种数据类型
2. 增加一些与所定义的类型的属性,如逻辑上的包含关系
3. 一些数学操作,重载操作符设计,方便图像图形的常见计算


定义它们的共性:
1. 模板设计方式,适用各种基本数据类型(char,int,float,double等)
   template<typename _Tp> class CV_EXPORTS 
2. 为方便使用,将模板类型特化为常用数据类型
3. 定义在core.hpp文件中,而实现与操作法重载在operation.hpp文件中。
    操作符包括 + - * 计算操作符和+= -= *= 比较运算符 == != 
4. 操作符及成员函数,定义为inline函数    


关系
转换关系
Point_ <-> Size_
Point_ <-> Vec<_TP, 2>

Point3_ <-> Vec<_TP, 3>
Point_ -> Point3_

Rect 包含 (Point, Size)

继承关系:
Scalar_ : public Vec<_Tp, 4>
Vec : public Matx<_Tp, cn, 1>


Matx: 小型矩阵
Mat 完全独立于上面类型的大型自定义数据类型


Point_
特征:
1. 存放多种数据基本类型,常用
2. 成员函数:构造函数重载,内积,inside rect检测
3. 重载各种操作符


Point3_ 
特征与Point_类似

Size_
1. 存放数据
2. 成员函数:面积计算

Rect_
1. 包含Point与Size两种属性
2. 成员:左上、右下点、大小、面积计算、点contain检测

Scalar_
1. 各种构造函数,默认参数为0
2. 成员函数:all静态初始化,mul乘积

Matx
在编译期就需要声明好维数和类型的小型Mat,若使用更灵活的类型,需要用Mat

主要用于数学运算,+ - * inv t转置等,类似matlab中的mat


Vec

1. 相当于一维的Matx

2. 成员mul,cross及数学运算符重载等。


Range
1. 非模板数据类型,整型,一维形式
2. 成员:大小、判空计算

Point、Size、Rect是整数类型的模板特化,最常用类型。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
HTML教程 iis7站长之家
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3