vvj 0 20 января, 2005 Опубликовано 20 января, 2005 · Жалоба GPIF не могу заставить работать - все управляющие и адрес по единице(смотрел на осц.) Есть пару вопросов по инитциализации из TRM страница 277/пункт 2 - нафиг нужен и почему в приведённом ниже примере читают из 0x00AB ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Trashy 0 21 января, 2005 Опубликовано 21 января, 2005 · Жалоба GPIF не могу заставить работать - все управляющие и адрес по единице(смотрел на осц.) Есть пару вопросов по инитциализации из TRM страница 277/пункт 2 - нафиг нужен и почему в приведённом ниже примере читают из 0x00AB ? <{POST_SNAPBACK}> Пиши подробней вопрос, мне некогда по пдфкам лазить. Ты может описатель временной диаграммы криво создаёшь... На 277 странице вообще порты IO описаны. $if (EnableGPIF) ;=-=-=-=-=-=-=-=-=-=-G-P-I-F-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- nop /* WriteX #IFCONFIG, #11000000b; //external/internal_CLOCK,30/48,out_enable,invert,Async,Test_pinout,1,0(GPIF) nop mov OEB,0x00 mov a,IOB JNZ NotError mov dptr,#USBCS ; bit7 - Mode jf PLL (480/12) movx a,@dptr ORL a,#00001000b movx @dptr,a whileAcc0: mov a,IOB JZ whileAcc0 mov dptr,#USBCS ; bit7 - Mode jf PLL (480/12) movx a,@dptr ANL a,#11110111b movx @dptr,a NotError:*/ CALL ResetPipe nop WriteX #IFCONFIG, #11000010b; //external/internal_CLOCK,30/48,out_enable,invert,Async,Test_pinout,1,0(GPIF) nop WriteX #GPIFABORT,#0xFF; //Abort All Pending Function /* MOV DPTR,#PORTECFG; // MOV A,#0x00 MOVX @DPTR,A */ nop WriteX #EP2FIFOCFG,#00000000b; nop WriteX #EP4FIFOCFG,#00000000b; nop WriteX #EP6FIFOCFG,#00000000b; nop WriteX #EP8FIFOCFG,#00000000b; nop; //CTL OutputMode WriteX #GPIFCTLCFG,#00000000b ; if (x==1) 7-tristate, 0..6 - open-drain /* MOV DPTR,#GPIFREADYCFG; // MOVX a,@DPTR ANL A,#01111111b ;SAS = 0 MOVX @DPTR,A*/ nop WriteX #GPIFWFSELECT, #Sw_Sr_Fw_Fr_Def nop MOV DPTR,#GPIFIDLECS ; defined states of GPIF signals in IDLE MOV A,#10000001b ; Data pin MOVX @DPTR,A nop WriteX #GPIFIDLECTL, #11111111b ; CTL pin in IDLE ; MOV DPTR,#GPIFREADYSTAT; Current state of RDY pin ; MOVX a,@DPTR ; ANL A,#01111111b ; ; MOVX @DPTR,A ;------------Autopointer-------------------------; ByteCounter DATA 128 ; mov autoptrsetup, #00000111b ; mov ByteCount_h,#high(ByteCounter) ; ; Hight byte of counter Autopointer mov ByteCount_l,#low(ByteCounter) ; ;source: ; mov autoptr1h,#high(mass) ; mov autoptr1l,#low(mass) ; ;destination: ; mov autoptrh2,#high(GPIF_WAVE_DATA) ; mov autoptrl2,#low(GPIF_WAVE_DATA) ; LCALL Autopointer ; ;------------------------------------------------; /* ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ $endif mov r1, #0 mov r3, #0 MOV IOD, #0x00 MOV OED, #0x01 MOV IOD, #0x00 MOV OEA, #0xFF MOV IOA, #01010001b ;======Initialization Size Endpoint Paket================= mov PacketSizeLow,#0x00 mov PacketSizeHigh,#0x02 mov dptr,#USBCS ; bit7 - Mode jf PLL (480/12) movx a,@dptr ANL a,#10000000b JNZ PLL480 ; branch if HCM != 0 mov PacketSizeLow,#0x40 mov PacketSizeHigh,#0x00 PLL480: $if (ControlEnable) MOV OEE, #00001000b mov IOE, #00001000b ; Test $endif nop WriteX #EP4AUTOINLENH,PacketSizeHigh; nop WriteX #EP4AUTOINLENL,PacketSizeLow; nop WriteX #EP8AUTOINLENH,PacketSizeHigh; nop WriteX #EP8AUTOINLENL,PacketSizeLow; Это работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Trashy 0 21 января, 2005 Опубликовано 21 января, 2005 · Жалоба нафиг нужен и почему в приведённом ниже примере читают из 0x00AB ? <{POST_SNAPBACK}> Не читают, а Peripheral_SetAddress( PERIPHCS ); Просто приводится пример, как пользовать вэйвформы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться