51开源 USB-HID 手柄制作(三) 添加线性摇杆
51开源 USB-HID 手柄制作(三) 添加线性摇杆测试视频链接
【基于stc8h 的51增强型单片机的USB-HID手柄(三)】 https://www.bilibili.com/video/B ... e385881b75229fda25c
试试嵌入代码能不能用
https://www.bilibili.com/video/BV1oN411v7fM?t=22.8
注意本文使用了微软360手柄的PID VID ,仅供交流学习使用。
本文使用设备描述符 等信息均来自互联网
源码已上传附件
这次的内容简单点
增加个adc.c
一个初始化 一个调用函数
void ADC_Init(void)
{
P1M0 |= 0x0a;
P1M1 |= 0x0a;
// P1PU |= 0x0a;
P_SW2 |= 0x80; // 扩展寄存器(XFR)访问使能
ADCTIM = 0x3f; // 设置 ADC 内部时序,ADC采样时间建议设最大值
ADCCFG = 0x2f; // 设置 ADC 时钟为系统时钟/2/16/16 右对齐
ADC_CONTR = 0x80; // 使能 ADC 模块
}加一个函数处理ADC的值
u16 joyConvert(BYTE chanel)
{
u16 retValue = 0;
u16 retValue1 = 0;
u16 retValue2 = 0;
u16 retValueAveragU16 = 0;
u16 retValueAverag = 0;
_nop_();
retValue = Get_ADC12bitResult(chanel);
_nop_();
retValue1 = Get_ADC12bitResult(chanel);
_nop_();
retValue2 = Get_ADC12bitResult(chanel);
retValueAveragU16 = (retValue + retValue1 + retValue2) / 3;
if (retValueAveragU16 > 4000) {
retValueAverag = retValueAveragU16 - 2048;
} else if (retValueAveragU16 < 1600) {
retValueAverag = retValueAveragU16 - 2048;
} else {
retValueAverag = 0;
}
#ifdef DEBUG
P6 = retValueAverag;
sprintf(p, "the joy is%d", retValueAverag);
UartSendStr(p);
#endif // DEBUG
return retValueAverag;
}STC 的ADC 过于强大 有12位 ,这里取8位就好
LRXCode = joyConvert(1) >> 4;
LRYCode = joyConvert(3) >> 4;
本帖最后由 gentleman 于 2023-10-9 10:40 编辑
这里也放一份基础版的源码
发现论坛可以传大文件附件了,上位机的完整工程也放在这。
学习了, 谢谢
USB / CAN 专题免费教学会议通知:
【USB 原理及实战,16课时】10月/9号, 10月/11号; 10/16, 10/18;
【CAN 原理及实战,12课时】10月/23号, 10月/25号; 10月/30号;
线上视频授课:周一下午/周三下午,14:00 ~ 17:00;
腾讯会议号:885-5858-2739; (安装腾讯会议软件后,输入会议号即可)
https://www.stcaimcu.com/forum.php?mod=post&action=edit&fid=76&tid=4526&pid=30477&page=1
请帮忙转发给可能需要:从0开始了解USB和CAN的 同学/同事/老师/研发人员
参会学习【免费+包邮送】USB核心功能实验板
参会学习【免费+包邮送】CAN核心功能实验板,模拟的CAN收发器您自己补上
独自等待 发表于 2023-10-1 00:00
学习了
谢谢
不用谢,后来上传了完整项目,你可以去看看 支持 大佬,这个能不能读取游戏状态啊,比如普通手柄的震动,或者更高级的角色或者内部装备的后坐力 车辆的上下浮动数据,这个可以做体感游戏的开发 本帖最后由 gentleman 于 2023-10-7 17:03 编辑
罗程峰820 发表于 2023-10-7 14:49
大佬,这个能不能读取游戏状态啊,比如普通手柄的震动,或者更高级的角色或者内部装备的后坐力 车辆的上下 ...
理论上是可以的,可以考虑加入后续的更新计划。
但除了震动之外,你说的其他功能要有相应的游戏支持(要不我再做个开源的游戏{:4_165:})。
其实最新版本固件就用到了了读取 pc端hid数据的功能--读取PC上位机数据。
玩出 STC-USB 芯高度
神农鼎 发表于 2023-10-7 18:54
玩出 STC-USB 芯高度
是 stc 的芯片性能强{:4_250:} 请问,有测试过摇杆数据通过USB发送到电脑的延时吗?
页:
[1]
2