本帖最后由 ddllxxrr 于 2018-4-6 17:16 编辑
按照评测计划,这次评测应形成程序了。
我的想法是把USB HID复合设备那个程序,与TOUCHKEY的那个程序合并
当然以复合设备为模板好,只是把TOUCHKEY.c和.h考贝过来。
然后加入到工程:
在主函数中加入触摸按键的声明
- TK_Init( BIT4+BIT5+BIT6+BIT7, 1, 1 ); /* Choose TIN2, TIN3, TIN4, TIN5 for touchkey input. enable interrupt. */
- TK_SelectChannel(0); /* NOTICE: ch is not compatible with the IO actually. */
复制代码
然后在HID处理函数加上触摸按键的判断:
所以在上边加判断,因为主函数时正常情况下就是在上边的函数里循环:
- main()
- {
- CfgFsys( ); //CH559ê±ÖóÑ¡ÔñÅäÖÃ
- mDelaymS(25); //DT¸ÄÖ÷Æμμè′yÄú2¿¾§ÕñÎ趨,±Ø¼ó
- mInitSTDIO( ); //′®¿ú03õê¼»ˉ
- #ifdef DE_PRINTF
- printf("start ...\n");
- #endif
-
- printf("start ddllxxrr ...\n");
- USBDeviceInit(); //USBé豸Ä£ê½3õê¼»ˉ
- TK_Init( BIT4+BIT5+BIT6+BIT7, 1, 1 ); /* Choose TIN2, TIN3, TIN4, TIN5 for touchkey input. enable interrupt. */
- TK_SelectChannel(0); /* NOTICE: ch is not compatible with the IO actually. */
- printf("come here ...\n");
- EA = 1; //ÔêDíμ¥Ƭ»úÖD¶Ï
- UEP1_T_LEN = 0; //Ô¤ê1ó÷¢Ëí3¤¶èò»¶¨òaÇå¿Õ
- UEP2_T_LEN = 0; //Ô¤ê1ó÷¢Ëí3¤¶èò»¶¨òaÇå¿Õ
- FLAG = 0;
- Ready = 0;
- //Port1Cfg(1,6);
- //Port1Cfg(1,7);
- while(1)
- {
- if(Ready)
- {
- while(1)
- {
- HIDValueHandle();
- }
- }
- if(Ready&&(Ep2InKey == 0)){
- #ifdef DE_PRINTF //¶áè¡D¾Æ¬IDoÅ
- printf("ID0 = %02x %02x \n",(UINT16)*(PUINT8C)(0x3FFA),(UINT16)*(PUINT8C)(0x3FFB));
- printf("ID1 = %02x %02x \n",(UINT16)*(PUINT8C)(0x3FFC),(UINT16)*(PUINT8C)(0x3FFD));
- printf("ID2 = %02x %02x \n",(UINT16)*(PUINT8C)(0x3FFE),(UINT16)*(PUINT8C)(0x3FFF));
- #endif
- CH554USBDevWakeup(); //
- mDelaymS( 10 );
- Enp1IntIn();
- }
- mDelaymS( 100 ); //Ä£Äaμ¥Ƭ»ú×öÆäËüêÂ
- }
- }
复制代码
上边的键值是在度娘上查到的:
然后,把开发板接USB插到电脑上,出现了两个键盘,打开记事本看了一下:
唯一不满意的是停不下来,要想停得先按别的按键一下
此内容由EEWORLD论坛网友ddllxxrr原创,如需转载或用于商业用途需征得作者同意并注明出处