amobbs.com 阿莫电子技术论坛

标题: [战争帖]初出茅庐第一仗 Snail Touch 应用实例一,触摸按键USB HID设备设计开启 [打印本页]

作者: kingofkings    时间: 2009-6-4 09:45
标题: [战争帖]初出茅庐第一仗 Snail Touch 应用实例一,触摸按键USB HID设备设计开启

前段时间因为AVR32芯片货源的事情,Snail Touch的应用实例做了冷处理,现在芯片已完备,那就按照原计划开始推进Snail Touch应用实例开源。
新的实例会摒弃以前一次性放出Demo的做法,会以开发步骤一步一步展示给大家,以求让大家真正能够把握AVR32以及Snail Touch开发关键。



<font color=red>应用实例一,触摸按键HID设备




Snail Touch作为外部事件输入平台,通过TWI总线(默认,也可为SPI USART 或者译码输出),与应用层通讯
AVR32作为应用层,接受外部事件,作为USB HID与PC连接。

功能描述:
1、控制鼠标左键,右键,滚轮
2、用滑环模拟Joystick来控制鼠标。

开发平台
Snail Gui开发套件。


相关下载

点击此处下载 ourdev_452263.zip(文件大小:5.46M) (原文件名:HID.zip)



大家对这实例有什么好的建议也可提出,欢迎大家一起加入到设计中~~
作者: kingofkings    时间: 2009-6-4 09:46
占位
作者: kingofkings    时间: 2009-6-4 09:46
占位
作者: kingofkings    时间: 2009-6-4 09:46
占位
作者: wenming    时间: 2009-6-4 09:47
好,什么时候出来?
作者: ivws    时间: 2009-6-4 09:51
支持呀!!!
AVR32做USB应用!!!,越详细越好!!
作者: armok    时间: 2009-6-4 09:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: thriller    时间: 2009-6-4 10:22
强力插入前十。
作者: Gorgon_Meducer    时间: 2009-6-9 23:03
第一个示例代码已经更新。^_^ Have a good time.


主循环核心代码片断
int main(void)
{
    ...
    while(1)
    {
        ...
        wCounter++;
        if (!(wCounter & (((U32)1<<7) - 1)))                        //每2^7才执行一次Snail_Touch_Task()
        {
            //! Snail Touch Main Task
            if (SNAIL_TOUCH_SUCCESS == Snail_Touch_Task())          //该任务用来维持基本的Touch通讯
            {
                g_bIfGetTouchState = TRUE;
            }
        }
    }
}


<font color=red>HID 鼠标设备消息处理函数

<font color=brown>void device_mouse_hid_task(void)
{
    SNAIL_TOUCH_STATUS Status = Snail_Touch_Get_Status();
    ...
    extern Bool g_bIfGetTouchState;
    if (FALSE == g_bIfGetTouchState)
    {
        return ;
    }
    else
    {
        g_bIfGetTouchState = FALSE;
    }

    {
        U8 u8_report_buttons = 0;
        S8 Slider = 0;
        S8 x,y;
        double Temp;
        U16 iAngle;

        if (Status.Status.Sensor.KeyA)
        {
            u8_report_buttons |= 2;
        }

        if (Status.Status.Sensor.KeyB)
        {
            u8_report_buttons |= 1;
        }

        if (Status.Status.Sensor.Slider)
        {
            if (Status.SliderValue > 128)
            {
                Slider = 1;
            }
            else
            {
                Slider = -1;
            }
        }

        if (Status.Status.Sensor.Rotor)
        {
            iAngle = Snail_Touch_Get_Rotor_Angle_Degree();
            Temp = ((double)iAngle * (3.1415926535  / 180.0));
            x = 10 * cos(Temp);
            y = -10 * sin(Temp);
        }
        else
        {
            x = 0;
            y = 0;
        }

        while ( !Is_usb_in_ready(EP_HID_MOUSE_IN) );

        {
           Usb_reset_endpoint_fifo_access(EP_HID_MOUSE_IN);

           //! Write report
           Usb_write_endpoint_data(EP_HID_MOUSE_IN, 8, u8_report_buttons);
           Usb_write_endpoint_data(EP_HID_MOUSE_IN, 8, x);
           Usb_write_endpoint_data(EP_HID_MOUSE_IN, 8, y);
           Usb_write_endpoint_data(EP_HID_MOUSE_IN, 8, Slider);

           Usb_ack_in_ready_send(EP_HID_MOUSE_IN);
        }
    }

    ...
}
作者: armok    时间: 2009-6-9 23:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: Gorgon_Meducer    时间: 2009-6-9 23:09
自己跟自己过不去……就是自己跟自己搞阶级斗争……要打_倒敌人,先要打_倒自己……
作者: kingofkings    时间: 2009-6-10 00:04
有Snail GUI平台的网友可以试下作为鼠标的效果鸟~
作者: bbandpp    时间: 2009-6-10 08:39
为什么我对AVR32还是没兴趣呢~
作者: Gorgon_Meducer    时间: 2009-6-10 12:41
For you are not touched.
作者: tianyuwei    时间: 2009-6-10 17:25
touch能便宜点就好鸟---------
作者: 007szj    时间: 2009-6-12 17:01
Mark
作者: lisn3188    时间: 2009-6-23 13:03
【14楼】 tianyuwei
          touch能便宜点就好鸟---------

太同意了,能便宜点更多的人能一起touched
作者: ivws    时间: 2009-6-23 21:16
好东东...我顶...!!!
作者: psocfans    时间: 2009-8-14 09:21
好东西,顶
作者: avr-stm32    时间: 2009-8-14 10:04
支持!
AVR32做USB应用!
作者: tomy    时间: 2009-9-11 18:12
占位先
作者: lantian0099    时间: 2010-3-17 15:20
等待ing
作者: luojinwen    时间: 2010-5-17 17:20
能否上个鼠标的视频看看?
作者: rongjunqiang11    时间: 2011-7-1 11:40
MARK
作者: hncjs    时间: 2013-2-20 20:25
触摸Hid不错
作者: jz701209李    时间: 2013-2-21 18:06
学习一下....
作者: a515509429    时间: 2014-12-25 08:48
赞一个~~




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4