Hi George,
Sun Mar 27 2005 15:32, George Shepelev wrote to Michael Zaichenko:
GS>>> ëÓÔÁÔÉ, Á Ñ ×ÅÄØ ÐÒÅÄÕÐÒÅÖÄÁÌ... MZ>> á Ñ ÐÏÍÎÀ. ôÅÍ ÎÅ ÍÅÎÅÅ ÎÁ ÐÅÒ×ÏÍ ÐÎÅ ×ÓÅ ÖÉ×ÅÔ.
GS> õÇÕ. ëÏÇÄÁ × ÐÅÒ×ÙÊ ÒÁÚ ÓÔÁÌËÉ×ÁÅÛØÓÑ Ó ÜÔÏÊ ÚÁÐÏÄÌÑÎËÏÊ - ÏÞÅÎØ GS> ÐÒÏÔÉ×ÎÏ. üÔÏ ÔÏÌØËÏ ÐÅÒ×ÙÊ ÒÁÚ ÐÒÏÔÉ×ÎÏ, ÐÏÔÏÍÕ ËÁË ÎÅÑÓÎÏ. ðÏÔÏÍ ÑÓÎÏ, É ÖÅÌÅÚÏ ÍÏÖÎÏ ÓÒÁÚÕ ÐÒÏ×ÅÒÉÔØ ÎÁ ÐÒÉÇÏÄÎÏÓÔØ.
MZ>> á ÅÝÅ ÐÏÍÎÀ ÞÔÏ ÔÙ ÐÒÅÄÌÁÇÁÌ ÐÏÓÔÁ×ÉÔØ ÏÄÎÏËÒÉÓÔÁÌËÕ. MZ>> HÅ ÍÏÇÕ ÐÏÎÑÔØ ËÁË. ÷ÏÔ ÅÓÔØ ÎÁÐÒÉÍÅÒ AVR × ÄÉÐÏ×ÏÍ ËÏÒÐÕÓÅ MZ>> É Ä×Á ÕÁÒÔÁ ÎÁ ÂÏÒÔÕ. ôÏÌØËÏ ÔÏÌËÕ? MZ>> HÅ ÈÏÞÕ ÖÅÌÅÚÎÙÊ ÕÁÒÔ, Á ÈÏÞÕ ÎÁ ÕÒÏ×ÅÎØ ÎÉÖÅ. MZ>> ñ ×ÉÖÕ ÐÏÔÅÒÑÎÙÅ ÓÔÏÐ ÂÉÔÙ, ×ÉÖÕ ÔÁÊÍÉÎÇÉ ÍÅÖÄÕ ÆÒÅÊÍÁÍÉ, MZ>> ÍÅÖÄÕ ÐÁËÅÔÁÍÉ, ×ÉÖÕ ÉÇÏÌËÉ. MZ>> þÔÏ ÂÕÄÅÔ ÄÅÌÁÔØ ÏÄÎÏËÒÉÓÔÁÌËÁ × ÜÔÏÍ ÓÌÕÞÁÅ?
GS> ôÏ-ÖÅ ÓÁÍÏÅ, ÞÔÏ ÔÙ ÓÅÊÞÁÓ ÄÅÌÁÅÛØ ËÏÍÐÏÍ. ÷ÚÑÔØ ÏÄÎÏËÒÉÓÔÁÌÌËÕ Ó GS> ÔÁËÔÏ×ÏÊ ÐÏ×ÙÛÅ (20-ÍÅÇÁÇÅÒÃÏ×ÏÊ AVR-ËÉ, ×ÒÏÄÅ, ÄÏÌÖÎÏ È×ÁÔÉÔØ). òÁÂÏÔÁ GS> ÐÏ ÐÒÅÒÙ×ÁÎÉÑÍ ÄÁÓÔ ÔÏÞÎÏÓÔØ ÆÏÒÍÉÒÏ×ÁÎÉÑ ×ÙÂÏÒÏË ÐÏÒÑÄËÁ ÎÅÓËÏÌØËÉÈ GS> ÔÁËÔÏ× (ÄÏÌÉ ÍÉËÒÏÓÅËÕÎÄÙ). ÷ÐÒÏÞÅÍ, ÍÏÖÎÏ É ÂÅÚ ÐÒÅÒÙ×ÁÎÉÊ, ÐÒÏÓÔÏ ÔÁËÔÙ GS> ÐÏÄÓÞÉÔÙ×ÁÔØ ÐÒÉģÔÓÑ. üÔÏ ÎÅ ÔÁË ÓÌÏÖÎÏ, ËÁË ÎÁ Z80 ;)
MZ>> É ÞÅÒÅÚ ÞÔÏ ÏÎÁ ÂÕÄÅÔ × ËÏÍÐ ÚÁÇÏÎÑÔØ?
GS> ðÒÉ ÍÁÌÏÊ ÉÎÔÅÎÓÉ×ÎÏÓÔÉ ÓÏÂÙÔÉÊ - ÞÅÒÅÚ UART. åÓÌÉ ÎÅ È×ÁÔÁÅÔ ÓËÏÒÏÓÔÉ - GS> ÐÒÏÂÏ×ÁÔØ Ä×ÕÎÁÐÒÁ×ÌÅÎÎÙÊ ÒÅÖÉÍ LPT, Á ÔÏ É ÎÁ USB ÐÅÒÅÊÔÉ. UART ÏÔÄÙÈÁÅÔ, ÅÍÕ ÔÏÞÎÏ ÓËÏÒÏÓÔÉ ÎÅ È×ÁÔÉÔ. USB - ÎÅ ÎÁÄÏ, ÛÎÕÒËÉ ËÏÒÏÔËÉÅ. ìÕÞÛÅ ÓÒÁÚÕ ehternet É ÚÁÂÙÔØ ÐÒÏ DOS :)
÷ÏÔ ÔÏÌØËÏ ÏÄÎÏ ÎÅ ÑÓÎÏ, ÚÁÞÅÍ ÍÎÅ ÏÄÎÏËÒÉÓÌËÁ? ÐÌÁÔÁ 485 -> LPT ÂÙÌÁ ÓÄÅÌÁÎÁ ÚÁ 3 ÞÁÓÁ ×ËÌÀÞÁÑ ÔÒÁ×ÌÅÎÉÅ :) äÅÔÁÌÅÊ × ÎÅÊ ÎÁ 3 ÂÁËÓÁ. é ÔÏÇÏ ×ÓÅ ÐÏÌÕÞÉÌÏÓØ
_ÂÙÓÔÒÏ_ É
_ÄÅÛÅ×Ï_, Á ÎÕÖÅÎ
_ÏÄÉÎ_ ÜËÚÅÍÐÌÑÒ - ÎÕ
_ÎÁÆÉÇÁ_ ÏÄÎÏËÒÉÓÔÁÌËÁ ÔÏ ?
GS> ëÏÎÔÒÏÌØÎÙÊ ÐÒÉÍÅÒ. áÎÁÌÉÚÉÒÕÅÔÓÑ ÐÅÒÅÄÁÞÁ ÎÁ ÓËÏÒÏÓÔÉ 115200 ÂÏÄ, GS> ÐÒÉ ÜÔÏÍ ÚÁ 1 ÓÅËÕÎÄÕ ÐÒÏÉÚÏÊģÔ 115200 ÉÚÍÅÎÅÎÉÊ ÓÏÓÔÏÑÎÉÑ. þÁÓÔÏÔÙ ÏÄÎÏ ÉÚÍÅÎÅÎÉÅ ÚÁÎÉÍÁÅÔ 4 ÂÁÊÔÁ. á ÅÓÌÉ × ÓÅÔÉ ÐÏÂÅÖÁÌÉ ÐÏÍÅÈÉ/ÉÇÏÌËÉ ÔÏ ÌÅÇËÏ ×ÙÛÌÏ ÂÏÌØÛÅ. ÅÝÅ ÂÕÆÅÒ ÎÕÖÅÎ, ÐÏÓËÏÌØËÕ ËÒÉ×ÏÊ ËÏÍÐ ÍÏÖÅÔ ÚÁÔËÎÕÔÓÑ. ×ÏÂÝÅÍ ~500 ËÂ × ÓÅËÕÎÄÕ.
GS> ìÀÂÕÀ ÚÁÄÁÞÕ ÍÏÖÎÏ ÕÓÌÏÖÎÉÔØ ÔÁË, ÞÔÏ ÐÏÔÒÅÂÕÅÔÓÑ ÉÚÍÅÎÉÔØ ÓÁÍ ÍÅÔÏÄ GS> ţ ÒÅÛÅÎÉÑ. ðÏÄÐÒÙÇÎÕÔØ ÎÁ ÍÅÔÒ, ÎÁ 5 ÍÅÔÒÏ×, ÎÁ 25 ÍÅÔÒÏ×... âÌÉÎ, ÎÏ ÍÏÑ ÔÏ ÖÅÌÅÚÑËÁ ÓÐÒÁ×ÌÑÅÔÓÑ :)
÷ÏÔ ËÕÓÏË ÉÓÈÏÄÎÉËÁ. ÈÏÞÕ ÔÁËÏÅ ÖÅ, ÎÏ ÎÁ AVR É ÛÔÏÂ Ó PC ÐÏ TCP/IP :) é ÞÔÏ ÄÅÎÅÇ ÎÅ ÂÏÌØÛÅ 30$ ;))))
MAX_TIME_VALUE equ 03ffffffh ADM_PIN_MASK equ 040h ; 10 pin on LPT
meausure_diff macro push eax push edx sub eax,ebx sbb edx,ecx shrd eax,edx,2 ; edx:eax contains diff value /4 endm
read_adm_pin macro mov dx,[lpt_port] in al,dx and al,ADM_PIN_MASK endm
; ÓÏÂÓÎÏ ÒÁÂÏÞÉÊ ÃÉËÌ ÓÎÉÆÅÒÁ ; edi-> ÎÁÞÁÌÏ ÂÕÆÅÒÁ ; esi: ËÏÎÅÃ ÂÕÆÅÒÁ
rdtsc start_rising: mov ebx,eax mov ecx,edx wait_rise: read_adm_pin jz wait_rise ; wait until zero
rdtsc meausure_diff cmp eax,MAX_TIME_VALUE ja overfl_up or eax,040000000h ;set up flag jmp save_up overfl_up: mov eax,0C0000000h ;overflow+up save_up: mov [edi],eax pop edx pop eax add edi,4 cmp edi,esi ja buffer_filled ;--- ; process falling edge ;--- mov ebx,eax mov ecx,edx wait_fall: read_adm_pin jnz wait_fall
rdtsc meausure_diff cmp eax,MAX_TIME_VALUE ja overfl_fall or eax,000000000h ;set fall flag jmp save_fall overfl_fall: mov eax,080000000h ;overflow+fall save_fall: mov [edi],eax pop edx pop eax add edi,4 cmp edi,esi ja buffer_filled jmp start_rising buffer_filled:
WBR, Michael