PIC в командния и улавяне и съхранение

J

Jaime

Guest
Привет
Аз се опитвам да се свържа снимка да ми Siemens C45 в C.

Бих искал да направя едно прекъсване от RX ПИН за четене на данни от телефона.
Аз знам, че телефонът изпрати ОК (в шестнадесетичен: 0D 0A 4F 4B 0D 0A

Аз трябва да се използва rotine с деЬс, защото това завърши с низ Dont 0D (CR), така че аз арго употреба получава.
Как мога да направя това?

Благодарности

Jaime

 
Здрасти,

При изпращане в командния можете също да добавите в 0x0D в края там не е проблем.Не знам как да се използва УСВ, IM повече от H * Техническа съставител, но трябва само да изпратите АТ и изчакайте ОК.Използвайте добра програма да помиришат на данни в реално време (с буфер за PC).Обичам да се използва Docklight които можете да намерите в интернет.Има много функции, които са много полезни, когато работите с модем и MCU.
.
( NO
points will be taken from you! )Ако сте намерили отговора полезен, кликнете върху бутона, който казва
ми помогна.

(NO
точки ще бъдат взети от вас!)Успех.

 
Благодаря за отговора

АЗ имам никакъв проблем при изпращането на команди.

Моят проблем е receivind данни.Искам да видя една рутинна, че reveivs на команди.
Знам, че трябва да чакам за ОК.Но как мога да разбера, че съм получава ОК?

благодарности

 
Здрасти,
защо не можете да използвате деЬс, това няма връзка с NL / CR байт, деЬс четете и да се получи буфер от стойността на променлива:
буфер [N] = деЬс (); това в RSRX Int подпрограма
recive, когато той ще бъде написана на променливата буфер [].
0A Това е нов ред.Ако вашето завръщане модем винаги 0A или 0D след низ, ден можете да използвате и двете от тях до края на mesage, вие ще имате един пакет флага на проекта, пакет флаг край.

Temp = деЬс ();
ако ((Temp == 0x0A | | Темп == 0x0D) & проекта пакет)
(
на проекта пакет = FALSE;
края пакет = вярно;
)
в противен случай
(
буфер [X] = Temp;
X ;
)

в програмата, която ще провери пакет края, а когато това е вярно, вие ще прочете данни от буфер и да х = 0 ANF ackage края = грешно:

ако (края на пакет)
(
края пакет = фалшиви
IF (буфер [0] = 'О' & & буфер [1] = 'К' & & X == 1)
(
направя нещо;
)
)

 
Разбирам какво искаш да кажеш, но аз съм наистина видите първата част на програмата да работи.

ако ((Temp == 0x0A | | Темп == 0x0D) & проекта пакет)

Мисля, че програмата никога не влиза в това състояние.Няма по проекта пакет = вярно и Temp получава само един от състоянието 0x0A или 0x0D ...Съгласни ли сте?

Както казах, че разбирам за какво говориш, но аз съм ли кой да го направя, така че ми помогне на по-litle<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />Имаш точки!

Благодарности

 
Здрасти,
, когато пиша тази последна вечер и беше много sleeply и виждам, че съм забравил нещо:

# INT_RDA
нищожен RDA_IRS (Void)
(
Чар Temp;
Temp = деЬс ();
ако ((Temp == 0x0A | | Темп == 0x0D) & & package_start)
(
package_start = 0;
package_end = 1;
)
в противен случай
(
IF (Temp! = 0x0A & & Temp! 0x0D =)
(
package_start = 1;
буфер [N] = Temp;
N ;
)
)
)

Това е пакет получавате.

IF (package_end)
(
package_end = 0;
IF (буфер [0] == 'O' & & буфер [1] == 'К' & & N == 2)
(
printf ( "Hello");
N = 0;
)
)

и това е проверка на пакета, Thi е swork, но ....Това е само идея, когато имате съобщение, трябва да прилагат това в протокола за комуникация, защото аз предполагам, че трябва да получават и предават данни към модема.

 

Welcome to EDABoard.com

Sponsor

Back
Top