Portál AbcLinuxu, 8. června 2024 01:17


Dotaz: Komunikace RS232 linux - Microchip PIC16F876

19.8.2011 11:44 saf | skóre: 3
Komunikace RS232 linux - Microchip PIC16F876
Přečteno: 556×
Odpovědět | Admin
Zdravím, Na roteru WL500gP běží Linux komunikuje po sériové lince se zařízením s Microchipem.

Na routeru spustím Minicom zmáčknu "t" a Microchip odešle teploty v ASCI, Minicom je vypíše. To je vše OK.

Ale v Bashi provedu "echo -en '\x74' > /dev/usb/tts/0 ; read -st 2 x < /dev/usb/tts/0 ; echo $x", a to už nejde.

Nejhorší je, že mi to fungovalo. Jenže jsem to ladil až jsem to doladil :-( Nepomůže ani reset. Určitě je to v nastavení ale nejsem schopen to dát znovu dohromady.

Děkuji za případnou pomoc.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (saf (tazatel))
Jendа avatar 19.8.2011 17:38 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle mě musíš otevřít ten soubor pro čtení a až pak tam poslat ten příkaz.
Já to s tou denacifikací Slovenska myslel vážně.
19.8.2011 19:06 saf | skóre: 3
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
Takhle mi to začalo fungovat: V jednom terminálu jsem dal "read -st 30 x < /dev/usb/tts/0 ; echo $x", ten čekal 30 sec na přijetí znaků. Do druhého terminálu jsem dal "echo -en '\x74' > /dev/usb/tts/0", enter a ejhle ono to jede. Tak jsem si řekl, že dám do programu v Microchipu zpoždění mezi přijetím a odesláním cca 0.5 sec. A najednou mi to začalo fungovat i bez toho zpožděni, tak nevím.

Nevím jak bych v Bashi udělal abych port nejdříve otevřel pro čtení a pak bych odeslal.
Řešení 1× (saf (tazatel))
19.8.2011 21:41 saf | skóre: 3
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
Tak snad vyřešeno :-) Udělal jsem dva scripty. První pustí druhý čtecí na pozadí. První pak pokračuje dále a teprve pak odešle data.

Díky za pošťouchnutí.
21.8.2011 22:43 benn | skóre: 18
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
A kdyz prohodis ty prikazy:
"read -st 2 x < /dev/usb/tts/0 | echo -en '\x74' > /dev/usb/tts/0"
To nezabere?
22.8.2011 11:28 Martin
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
Takhle to nejde:

read -st 4 x < /dev/usb/tts/0 | echo -en '\x74' > /dev/usb/tts/0 ; echo $x
Petr Tomášek avatar 21.8.2011 16:30 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dej tam AVR :-D
multicult.fm | monokultura je zlo | welcome refugees!
Jendа avatar 21.8.2011 18:14 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
AVR se chová úplně stejně, když tu hodnotu pošle ihned, nestihneš zapsat a otevřít sériák po sobě.
luta avatar 21.8.2011 20:04 luta | skóre: 20 | blog: muj_blok | Prostějov/Brno
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876

mozna by byl lepsi C programek z nejakeho tutorialu..ktery vyuziva std kernel fce a bufferuje co se da. Popr si stanovit nejaky pekny protokol, ktery MCU rekne co ma poslat a s jakou prodlevou a potvrzovat prijeti..

22.8.2011 11:43 Martin
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
Tak jak to mám teď udělaný s těma dvěma scripty, jeden se pustí na pozadí to jede v pohodě bez chyb.
22.8.2011 11:40 Martin
Rozbalit Rozbalit vše Re: Komunikace RS232 linux - Microchip PIC16F876
Proč ? Já to budu celé předělávat a výsledek bude stejný.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.