\
МИКРОКОНТРОЛЛЕРЫ
і
EscapeCcm nFunction (fo rC crm , SETBREAK);
/ / Выбираем память программ, а не данных (Р В 0»1).
i f P r u s s ia n ) p r i n t f ("Program was w r it t t e n s u c c e s s fu lly . . . \ n " ) ;
e ls e p r i n t f {"Успешная вались программы.
. . \ n " ) ;
//
EscapeCcmnFunction (forCom n, SETDTR);
/ / Выбираем память программ, а н е данных (Р В 0»1).
EscapeCcm nFunction (forCom n, CLRBREAK);
/ / Даем сигнал насчет э то го (Р В 2 »0 ).
i f P W a itS ig n a l ( t r u e , 1 0 0 ,1 0 0 , fru s s ia n ? "a n d l+ " : "юоді-f" ))
( i f P ru s s ia n ) p r i n t f { " * * * Tim eout a t f i r s t p a r t o f com nand.
. A n " ) ;
e ls e p r i n t f { " * * * Нет ответа при приеме первой части команды .
. . " ) ;
g o to e x i t l ;
>
/ /
Дождались о тв ета на первую часть команды.
EscapeCcm nFunction{forCom n,SETDTR);
/ / Сбрасываем сигнал.
EscapeCcm nFunction (forCcm n, SETBREAK);
/ / Даем сигнал насчет это го (Р В 2«1).
i f ( IW a itS ig n a l(f a ls e ,1 0 0 ,1 0 0 ,fru s s ia n ? " a n d l-" : " ю е д і-" ))
( i f P r u s s ia n ) p r i n t f { " * * * Tim eout a t f i r s t p a r t o f com nand.
. A n " ) ;
e ls e p r i n t f { " * * * Нет ответа при приеме первой части команды .
. . " ) ;
g o to e x i t l ;
)
/ / Дождались го т о в н о с т и к приему второй части команды.
EscapeCoffinFunction {forComn, SETRTS) ;
EscapeCoffinFunction (forCom n, CLRDTR);
/ / Выбираем чьение, а не эаписье (РВО-0) .
EscapeCcmnFunction(forCcmn,CLiRBREAK) ;
/ / Даем сигнал насчет это го (Р В 2-0) .
i f ( !W a itS ig n a l(tr u e , 1 0 0 ,1 0 0 , fru s s ia n ? "cmd2+" : "ю *д2+"))
( i f P r u s s ia n ) p r i n t f { " * * * Tim eout a t second p a r t o f command.
. . \ n " ) ;
e ls e p r i n t f {•«*** нет ответа при приеме второй части команды .
. . " ) ;
g o to e x i t l ;
>
/ /
Дождались о тв ета на втору» часть команды.
EscapeCcm nFunction (forCom n, SETBREAK);
/ / Сбрасываем сигнал .
EscapeCcm nFunction (forCom n, SETDTR);
/ / Даme сигнал насчет
э т о г о
(F B 2-1) .
EscapeCoffinFunction (forCom n, SETRTS);
/ / Даем сигнал насчет это го (Р В 2-1) .
i f p W a itS ig n a l ( f a ls e , 1 0 0 ,1 0 0 , fru s s ia n ? мсякі2+" : "ю ед2+"))
( i f (fr u s s ia n ) p r i n t f ( " * * * Tim eout a t second p a r t o f command.
. A n " ) ;
e ls e p r i n t f { " * * * Нет ответа при приеме второй части команды .
. . " ) ;
g o to e x i t l ;
>
/ / Начинаем чтение
битов очередного слова данных,
f o r (iC u rs ■ 0 ; iC u rs < t e s t ; iC u rs++)
(c o n fl - 0 ;
s p r in t f(f o r M s g ,H% 0 4 x ",iC u rs );
f o r (iHum » (iC u rs —«■ 0 ? 2 : 0 ) ; iNum < 16; iNum++)
( i f p f f a it S ig n a l( f a ls e ,1 0 0 0 ,1 0 ,fo rM s g )}
( i f P ru s s ia n ) p r i n t f ( " * * * Tim eout w h ile re a d in g . .
. \ n " ) ;
e ls e p r i n t f ( " * * * Нет ответа при ч т е н и и .
.." );
g o to e x i t l ;
>
GetCornnModemStatus (forCom n, b forM odem S tatus);
c o n fl - (c o n fl » 1 ) I ( (forM odem Status & MSJ)SRjDN) ? 0x80000000 : 0x00000000) ;
EscapaCcninFunction (forCom n,SETDTR);
/ / Даем сигнал насчет это го (РВ 2-1) .
EscapeCcm nFunction (forCom n, CLRBREAK);
/ / Сбрасываем сигнал.
f o r (iP o z - 0 ; iP o z < 2000; iPoz-f-f)
/ / Дожидаемся сигнала (PB 1-0)
(W aitComnEvent (forCom n,&forM odem Status,NULL) ;
/ / Здаа» оставляем та к , т .к . условие иьпго,тві более сложное!
GetCornnModemStatus (forCom n, b forM odem S tatus);
i f ( (forM odem Status & MS_CTS_0N) !» 0 S.S. (forM odem Status & MS_DSR_0N) f - 0) g o to c o n tl7 ;
S le e p (1 0 );
>
g o to e x i t l ;
c o n tl7 :
EscapeCcm nFunction (forCom n, SETBREAK);
/ / Сбрасываем сигнал.
>
c o n fl » - 16;
i f (c o n fl ! - in fo [ iC u r s ])
( i f (fru s s ia n ) p r i n t f ( " * * * E rro r %08x % 04x!! ! ! \n " ,c o n f l , i n f o ( iC u r s l ) ;
e ls e p r i n t f ( " * * * Ошибка чтения %08x % 04xf! ! f \n " , c o n f l ,i n f o [ i C u r s ] ) ;
g o to e x i t l ;
>
>
e x i t l :
EscapeCcmnFunction (forCom n, CLRBREAK) ;
EscapeCoffinFunction (forComn,CLPDTR} ;
EscapeCcm nFunction(forCom n,CLRRTS);
i f (fr u s s ia n ) p r i n t f <"> D isco n n ect p r ogram nator and p re ss E n t e r .
. . " ) ;
e ls e p r i n t f {"> Отсоедините программатор и к а т и т е E n t e r .
. . " ) ;
g e t c ( s t d in ) ;
C loseH andle (fo rC o m n );
>
>
re tu rn 0;
30 I
I Радиолюбитель - 0 4 /2 0 0 5
предыдущая страница 29 Радиолюбитель 2005-04 читать онлайн следующая страница 31 Радиолюбитель 2005-04 читать онлайн Домой Выключить/включить текст