搜索
bottom↓
回复: 5

求助!!!ch374调试usb手柄

[复制链接]

出0入0汤圆

发表于 2011-3-15 15:08:53 | 显示全部楼层 |阅读模式
大家好!我是个新手,最近对CH374感兴趣,要通过它和mega6调游戏手柄,网上资料太少,CH374EVT包不知道为什么用不了,根据技术手册时序图只写了些子函数,但要输什么具体命令却不知道,尝试了一下不成功,不知道程序该怎么写,希望大家能提供些信息,谢谢!
#define usb_port1            PORTA
#define usb_ddr1                DDRA
#define usb_pin1                PINA
#define usb_port2            PORTB
#define usb_ddr2                DDRB
#define usb_pin2                PINB
#define usb_A0                1<<PA4
#define usb_RD                1<<PA5
#define usb_WR                1<<PA6
#define usb_CS                1<<PA7
#define usb_INT                1<<PA0

#define set_usb_A0()        (usb_port1 |= usb_A0)
#define clr_usb_A0()        (usb_port1 &= ~usb_A0)
#define set_usb_RD()        (usb_port1 |= usb_RD)
#define clr_usb_RD()        (usb_port1 &= ~usb_RD)
#define set_usb_WR()        (usb_port1 |= usb_WR)
#define clr_usb_WR()        (usb_port1 &= ~usb_WR)
#define set_usb_CS()        (usb_port1 |= usb_CS)
#define clr_usb_CS()        (usb_port1 &= ~usb_CS)
#define set_usb_INT()        (usb_port1 |= usb_INT)
#define clr_usb_INT()        (usb_port1 &= ~usb_INT)

void delay(int s)
{
    while(s--);
}

void usb_init()
{
    usb_ddr1 |=(usb_A0|usb_RD|usb_WR|usb_CS);
    usb_port1|=(usb_A0|usb_RD|usb_WR|usb_CS);
    usb_port1|= ( usb_INT);
   
    usb_ddr2 =0x00;
    DDRC=0xff;
    PORTC=0xff;
    delay(50);
}

unsigned char usb_read()
{
    unsigned char data;
    clr_usb_WR();
    set_usb_WR();
    delay(140);
    clr_usb_A0();
    delay(10);
    clr_usb_RD();
    delay(35);
    data=usb_pin2;
    delay(10);
    set_usb_RD();
    set_usb_CS();
    set_usb_A0();
    return data;
}

unsigned char usb_write_data(unsigned char data)
{
    clr_usb_RD();
    set_usb_RD();
    delay(140);
    clr_usb_A0();
    delay(10);
    clr_usb_WR();
    delay(35);
    usb_port2=data;
    delay(10);
    set_usb_WR();
    set_usb_CS();
    set_usb_A0();
}

unsigned char usb_write_cmd(unsigned char cmd)
{
    clr_usb_RD();
    set_usb_RD();
    delay(140);
    set_usb_A0();
    delay(10);
    clr_usb_WR();
    delay(35);
    usb_port2=cmd;
    delay(10);
    set_usb_WR();
    set_usb_CS();
    set_usb_A0();
}
只是根据时序图写的,不知道能不能用,希望得到大家的指导,谢谢!

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-3-16 01:30:29 | 显示全部楼层
感觉这个IC不大好用,公司有做过一个产品,在低温下USB与PC连接不对,只要用烙铁焊一下,就可以了,但冷却之后又不行了。

出0入0汤圆

 楼主| 发表于 2011-3-17 19:40:59 | 显示全部楼层
谢谢楼上您的回帖!

出0入0汤圆

发表于 2012-11-8 09:11:13 | 显示全部楼层
刚申请了2片CH376准备用单片机读一下USB手柄呢,求指教

出0入0汤圆

发表于 2013-4-5 10:26:48 | 显示全部楼层
376是读U盘用的吧

出0入0汤圆

发表于 2013-4-5 18:42:04 来自手机 | 显示全部楼层
374,没用过
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 03:29

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

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