搜索
bottom↓
回复: 10

求一个PIC的触摸例程,要求商用,谢谢!

[复制链接]

出0入0汤圆

发表于 2017-7-27 18:01:24 | 显示全部楼层 |阅读模式
本帖最后由 tony001 于 2017-7-27 18:02 编辑

之前做一个触摸方案用的专用触摸IC,太贵了,现在用PIC16F1936来做4键触摸,,但实在效果不太理想啊,
看了别人做的四键效果相当不错的,我们硬件一样,肯定的说,我的软件做的不如别人好啊,


#include"head.h"
void Cap_ISR(void)
{
   static  int trip[6]={136,134,136,144,128,152},raw=0;
   static  char AvgIndex=0,Index=1;
   static  char DIM_Index[6]={1,2,3,0,5,4};
   if((Cap_bit==1)&&(TMR0IF==0))
   {
    TMR1ON=0;raw=TMR1H<<8|TMR1L;KEY_Avg[Index]=raw;      
        if(raw<(Cap_Avg[Index]-trip[Index]))//如果当前通道的频率值小于当前通道平均值减去差值,表示有按键按下
        {
       switch(Index)
           {
            case 0: {Key_data=Key_data|1;break;}
            case 1: {Key_data=Key_data|2;break;}
        case 2: {Key_data=Key_data|4;break;}
        case 3: {Key_data=Key_data|8;break;}
            case 4: {Key_data=Key_data|16;break;}
        case 5: {Key_data=Key_data|32;break;}
        case 6: {Key_data=Key_data|64;break;}
            case 7: {Key_data=Key_data|128;break;}
        case 8: {Key_data=Key_data|256;break;}
        case 9: {Key_data=Key_data|512;break;}
        case 10:{Key_data=Key_data|1024;break;}
        case 11:{Key_data=Key_data|2048;break;}
       }
        }
        else if(raw>(Cap_Avg[Index]-trip[Index]+64))
        {
          switch(Index)
          {
           case 0: {Key_data=Key_data&4094;break;}//-1
           case 1: {Key_data=Key_data&4093;break;}//-2
       case 2: {Key_data=Key_data&4091;break;}//-4
       case 3: {Key_data=Key_data&4087;break;}//-8
           case 4: {Key_data=Key_data&4079;break;}//-16
       case 5: {Key_data=Key_data&4063;break;}//-32
       case 6: {Key_data=Key_data&4031;break;}//-64
           case 7: {Key_data=Key_data&3967;break;}//-128
       case 8: {Key_data=Key_data&3839;break;}//-256
       case 9: {Key_data=Key_data&3583;break;}//-512
       case 10:{Key_data=Key_data&3071;break;}//-1024
       case 11:{Key_data=Key_data&2047;break;}//-2048
          }
          if(AvgIndex<2)AvgIndex ++;else AvgIndex=0;
          if(AvgIndex==2)
          {
                 if(raw>=Cap_Avg[Index]) Cap_Avg[Index]+=((raw-Cap_Avg[Index])>>4);
                 else                    Cap_Avg[Index]-=((Cap_Avg[Index]-raw)>>4);
          }
        }
   
    if(Index<5) Index++; else Index=0; CPSCON1=DIM_Index[Index];//切换通
        TMR1H=0;TMR1L=0;TMR1ON=1;
   }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2017-7-27 18:26:14 | 显示全部楼层
你这个应该是官方例程吧,结合硬件修改阈值,官方好像还有一个touch相关的工具

出0入0汤圆

发表于 2017-7-27 21:10:27 来自手机 | 显示全部楼层
这玩意布线很有讲究,尽量细点,我用了罗姆专用芯片效果也不好

出0入0汤圆

 楼主| 发表于 2017-7-28 08:05:43 | 显示全部楼层
看个别人用PIC做的,效果超好啊,

出0入0汤圆

发表于 2017-7-28 09:50:16 | 显示全部楼层
既然硬件一样,把他们的芯片吹下来,换你们的芯片和程序,看看是不是PCB方面的原因

出0入0汤圆

 楼主| 发表于 2017-7-28 09:56:15 | 显示全部楼层
哈哈,楼上的方法试过了,的确是自己的软件不行

出0入0汤圆

发表于 2017-7-28 09:56:57 | 显示全部楼层
pic有个mtouch。  效果蛮好的。   

触摸布线没那么讲究一样可以用。

出0入8汤圆

发表于 2017-7-28 14:50:13 | 显示全部楼层
这东西 关键在软件上 和芯片上。

出0入0汤圆

发表于 2017-7-29 13:58:42 来自手机 | 显示全部楼层
难怪中国人做产品都把IC字磨掉,还涂环氧树脂,不是别人无耻是都无...

出10入10汤圆

发表于 2017-7-29 15:30:00 | 显示全部楼层
用PIC单片机的mtouch库试试

出0入0汤圆

发表于 2017-8-11 13:17:41 | 显示全部楼层
ads ts04     
http://www.microchip.com.cn/comm ... /categoryId/27/p/3/
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 12:41

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表