kingofkings 发表于 2009-6-4 09:45:49

[战争帖]初出茅庐第一仗 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:05

占位

kingofkings 发表于 2009-6-4 09:46:16

占位

kingofkings 发表于 2009-6-4 09:46:28

占位

wenming 发表于 2009-6-4 09:47:10

好,什么时候出来?

ivws 发表于 2009-6-4 09:51:35

支持呀!!!
AVR32做USB应用!!!,越详细越好!!

armok 发表于 2009-6-4 09:52:31

支持。顶。。

thriller 发表于 2009-6-4 10:22:38

强力插入前十。

Gorgon_Meducer 发表于 2009-6-9 23:03:38

第一个示例代码已经更新。^_^ 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:39

战争帖是什么意思?

Gorgon_Meducer 发表于 2009-6-9 23:09:19

自己跟自己过不去……就是自己跟自己搞阶级斗争……要打_倒敌人,先要打_倒自己……

kingofkings 发表于 2009-6-10 00:04:28

有Snail GUI平台的网友可以试下作为鼠标的效果鸟~

bbandpp 发表于 2009-6-10 08:39:49

为什么我对AVR32还是没兴趣呢~

Gorgon_Meducer 发表于 2009-6-10 12:41:43

For you are not touched.

tianyuwei 发表于 2009-6-10 17:25:04

touch能便宜点就好鸟---------

007szj 发表于 2009-6-12 17:01:44

Mark

lisn3188 发表于 2009-6-23 13:03:39

【14楼】 tianyuwei
          touch能便宜点就好鸟---------

太同意了,能便宜点更多的人能一起touched

ivws 发表于 2009-6-23 21:16:58

好东东...我顶...!!!

psocfans 发表于 2009-8-14 09:21:35

好东西,顶

avr-stm32 发表于 2009-8-14 10:04:28

支持!
AVR32做USB应用!

tomy 发表于 2009-9-11 18:12:34

占位先

lantian0099 发表于 2010-3-17 15:20:13

等待ing

luojinwen 发表于 2010-5-17 17:20:04

能否上个鼠标的视频看看?

rongjunqiang11 发表于 2011-7-1 11:40:35

MARK

hncjs 发表于 2013-2-20 20:25:13

触摸Hid不错

jz701209李 发表于 2013-2-21 18:06:23

学习一下....

a515509429 发表于 2014-12-25 08:48:13

赞一个~~
页: [1]
查看完整版本: [战争帖]初出茅庐第一仗 Snail Touch 应用实例一,触摸按键USB HID设备设计开启