
"рд╕рднреА рдХрд▓рд╛рдУрдВ рдореЗрдВ рд╕реЗ, рд╕рд┐рдиреЗрдорд╛ рдФрд░ рд╕рд░реНрдХрд╕ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ"
- рд╡реАред рдЖрдИред рд▓реЗрдирд┐рди
рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдирд╛ рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкрд╕рдВрджреАрджрд╛ рдордиреЛрд░рдВрдЬрди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдлрд┐рд▓реНрдореЗрдВ рдЕрдм рд▓рдЧрднрдЧ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдкрд░ рднреАред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрд╕-рдкрд╛рд╕ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдирд╣реАрдВ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдмрд╛рд░рдХреЛрдб рд╕реНрдХреИрдирд░ рдкрд░ рдлрд┐рд▓реНрдо рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕рд┐рдлрд░ рд▓реИрдм 8001 рд╕реНрдХреИрдирд░ рд╣рд╛рде рдореЗрдВ рдерд╛ред рд╕реНрдХреИрдирд░
- 16-рдмрд┐рдЯ CMOS рдкреНрд░реЛрд╕реЗрд╕рд░
- рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП 1 рдПрдордмреА рдореЗрдореЛрд░реА
- рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП 1 рдПрдордмреА SRAM
- 100 ├Ч 64 рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рдПрд▓рдИрдбреА рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдПрдлрдПрд╕рдЯреАрдПрди рдбрд┐рд╕реНрдкреНрд▓реЗ
1 рдПрдордмреА рдореЗрдореЛрд░реА рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХрддрд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕реНрдХреНрд░реАрди рдбреЗрдЯрд╛ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕реАрдзреЗ рдЕрд╡рд░рдХреНрдд рдмрдВрджрд░рдЧрд╛рд╣ рд╕реЗ рдЖрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдХреЗ рдЪрд░рдо 4 рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрд╕реНрд╡реАрд░ рдХрд╛ рдЕрдВрддрд┐рдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди 96 ├Ч 64 рд╣реИ (рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдбреЙрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╛рдЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдЧреБрдг рд╣реИ)ред
рд╕реНрдХреИрдирд░ рдлрд░реНрдорд╡реЗрдпрд░
рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ:
- рдЕрд╡рд░рдХреНрдд рдмрдВрджрд░рдЧрд╛рд╣ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВ;
- рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд;
- рдЕрдЧрд▓реЗ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВред
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣реИ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ 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 рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд░реНрдорд╡реЗрдпрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рднреА рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ:
- рд╕реНрдХреНрд░реАрди рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдВ;
- рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ рдФрд░ рджреЛ-рд░рдВрдЧ рдХреА рдЫрд╡рд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ;
- рдмреНрд▓реЙрдХ рдореЗрдВ рддреЛрдбрд╝ рдФрд░ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рдзрд╛рд░рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд;
- рд╕реНрдХреИрдирд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдмрдлрд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдпрд╣ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛рддреА рд╣реИред рдмрд╛рдХреА рдХреЛрдб рддреБрдЪреНрдЫ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ рд▓реВрдк:
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
рдХрд╛рдо рдХрд╛ рдирддреАрдЬрд╛
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕реНрд░реЛрдд рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред