рдмрд╛рд░рдХреЛрдб рд╕реНрдХреИрдирд░ рдкрд░ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВ



"рд╕рднреА рдХрд▓рд╛рдУрдВ рдореЗрдВ рд╕реЗ, рд╕рд┐рдиреЗрдорд╛ рдФрд░ рд╕рд░реНрдХрд╕ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ"

- рд╡реАред рдЖрдИред рд▓реЗрдирд┐рди



рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдирд╛ рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкрд╕рдВрджреАрджрд╛ рдордиреЛрд░рдВрдЬрди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдлрд┐рд▓реНрдореЗрдВ рдЕрдм рд▓рдЧрднрдЧ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдкрд░ рднреАред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрд╕-рдкрд╛рд╕ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдирд╣реАрдВ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдмрд╛рд░рдХреЛрдб рд╕реНрдХреИрдирд░ рдкрд░ рдлрд┐рд▓реНрдо рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕рд┐рдлрд░ рд▓реИрдм 8001 рд╕реНрдХреИрдирд░ рд╣рд╛рде рдореЗрдВ рдерд╛ред рд╕реНрдХреИрдирд░ рдкреНрд▓реЗрдпрд░ рдХреЗ рддрдХрдиреАрдХреА рд╡рд┐рдирд┐рд░реНрджреЗрд╢:



1 рдПрдордмреА рдореЗрдореЛрд░реА рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХрддрд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕реНрдХреНрд░реАрди рдбреЗрдЯрд╛ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕реАрдзреЗ рдЕрд╡рд░рдХреНрдд рдмрдВрджрд░рдЧрд╛рд╣ рд╕реЗ рдЖрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдХреЗ рдЪрд░рдо 4 рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрд╕реНрд╡реАрд░ рдХрд╛ рдЕрдВрддрд┐рдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди 96 ├Ч 64 рд╣реИ (рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдбреЙрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╛рдЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдЧреБрдг рд╣реИ)ред



рд╕реНрдХреИрдирд░ рдлрд░реНрдорд╡реЗрдпрд░



рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ:

  1. рдЕрд╡рд░рдХреНрдд рдмрдВрджрд░рдЧрд╛рд╣ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВ;
  2. рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд;
  3. рдЕрдЧрд▓реЗ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВред


рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣реИ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ 256 рдмрд╛рдЗрдЯреНрд╕ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ рдкреВрд░реЗ рдлреНрд░реЗрдо рдХрд╛ рдЖрдХрд╛рд░ 96 ├Ч 64/8 = 768 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдлреНрд░реЗрдо рдХреЛ 16 рд▓рд╛рдЗрдиреЛрдВ рдХреЗ 4 рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рдВ, рдбреЗрдЯрд╛ 256 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ 3 рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдмреНрд▓реЙрдХ рдирдВрдмрд░ рдХреЛ рдЗрдирдкреБрдЯ рдмрдлрд╝рд░ рдХреЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред



int PlaceFromCom ( void ) {

long timer ;

int position ;

char c , picture [ BLOCK_SIZE ] ;

unsigned char blockId , loaded ;



SendRequest () ;



timer = sys_msec ;

loaded = 0 ;

position = 0 ;

while ( sys_msec < = timer + TIMEOUT_MSEC ) {

if ( read_com ( COM_PORT_NUM , & c ) ) {

picture [ position ] = c ;

position + + ;

if ( position = = BLOCK_SIZE ) {

loaded = 1 ;

break ;

}

}

}

if ( ! loaded ) {

printf ( "Comm error\r\n" ) ;

return 1 ;

}

blockId = ( picture [ 0 ] % 4 ) ;

show_image ( 0 , blockId * BLOCK_H , IMAGE_WIDTH , BLOCK_H , & ( picture [ 1 ] ) ) ;

return 0 ;

}







рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо



COM рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд░реНрдорд╡реЗрдпрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рднреА рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ:

  1. рд╕реНрдХреНрд░реАрди рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдВ;
  2. рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ рдФрд░ рджреЛ-рд░рдВрдЧ рдХреА рдЫрд╡рд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ;
  3. рдмреНрд▓реЙрдХ рдореЗрдВ рддреЛрдбрд╝ рдФрд░ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рдзрд╛рд░рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд;
  4. рд╕реНрдХреИрдирд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдмрдлрд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред


рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдпрд╣ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛рддреА рд╣реИред рдмрд╛рдХреА рдХреЛрдб рддреБрдЪреНрдЫ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ рд▓реВрдк:

while True :

data = ser . read ( 9999 )

if len ( data ) > 0 :

if data [ 0 ] = = "V" :

ser . write ( chr ( currentBlock ) )

ser . write ( desktop . strings [ currentBlock ] )

currentBlock = ( currentBlock + 1 ) % blockCount







рдХрд╛рдо рдХрд╛ рдирддреАрдЬрд╛







рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕реНрд░реЛрдд рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред



All Articles