阅读:987回复:3
我的D12需要Reset16次,如何解决?
我的D12上电后需Reset16次,这样Good_link才会亮
若改为8次,Good_link就不亮。 实际上,D12带内部Reset电路,不用程序进行Reset。 不知怎么解决这个问题? |
|
|
沙发#
发布于:2003-07-07 08:28
说明你的D12枚举还是有问题,是开发板吗,如果不是的话,看看和D12开发板的典型电路一样不,再看看固件中枚举那一部分有没有问题。
|
|
板凳#
发布于:2003-07-07 08:48
据我观察,reset后goodlink只是闪一下,要枚举成功才会明显得亮。不必要拘束亮不亮的问题,主要的确保读写正确、枚举成功。
|
|
地板#
发布于:2003-07-07 10:00
我用的不是开发板,也没有完整的固件程序,只是测试一下SoftConnect
程序是这样的: LED0 bit P1.2 LED1 bit P1.3 CNT data 20h D12_COMMAND data 03h D12_DATA data 02h D12_CS bit P1.6 D12_RESET bit P1.7 D12_SUSPD bit P3.3 org 0000h ajmp main org 0003h ljmp Fn_Isr org 000bh ljmp T0_Isr org 50h main: mov P1,#11110111b mov r4,#10h M_Delay: lcall Delay;开机延时 djnz r4,M_Delay CLR D12_CS CLR D12_SUSPD ;lcall D12_Connect SETB D12_SUSPD mov r4,#10h;复位16次Softconnect成功且Good_link亮 D_Reset: ;若复位8次的话Softconnect就不成功且Good_link不亮 lcall delay CPL D12_RESET djnz r4,D_Reset SETB D12_RESET;解除复位 lcall D12_Connect;Softconnect lcall Init_Timer0;初始化定时器0 loop: lcall delay CPL LED0 jnb CNT.4,loop_1 CPL LED1 loop_1: CLR CNT.4 sjmp loop Delay: ;0.13s mov R2,#0ffh delay1: mov R3,#0ffh delay2: nop nop djnz r3,delay2 djnz r2,delay1 ret T0_Isr: INC CNT reti ;中断0处理 Fn_Isr: SETB P3.2 reti D12_Connect: mov R0,#D12_COMMAND mov A,#0F3h movx @R0,A mov R0,#D12_DATA mov A,#00010000b movx @R0,A mov A,#00001011b movx @R0,A ret Init_Timer0: ;定时器0.032768s mov TMOD,#01h;16位模式 mov TH0,#00h mov TL0,#00h SETB ET0;允许定时中断 SETB TR0;开定时器 SETB PT0;高优先级 SETB EA;开总中断 ret end |
|
|