[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Att läsa mätdata på serieport....



Det kort jag använder är Smartecs utvecklingskort, (Elfa #73-087-60),
som är byggt runt en PIC12C509. Den gör 30 mätningar och sänder
medelvärdet av dessa. De prover jag gjort har visat att den mäter med god
noggrannhet och inte hoppar nämnvärt. Den tar c:a 0,5 s. på sig per
givare, och klarar upp till 4 givare som den går igenom en i taget.

Det är nog bättre att plocka spänningen från DTR istf. RTS, eller
om du (Kaddik) tar den från båda två över dioder. Man kan även
ta ström från TD via dioder, men om du aldrig sänder till enheten
blir det bara en negativ spänning där och det kanske du inte har nytta
av.
För att DTR ska vara hög sätts -clocal i stty, glöm då inte att
kortsluta DTR med DSR på ditt kort annars uppfattar seriedrivrutinen att
det inte finns någonting anslutet och du får inga indata då.

 On Sun, 11 Aug 2002, Kaddik wrote:

 > Jag har kört fast totalt!
 >
 > Det jag vill göra är att sätta RTS på serieporten och läsa inkommande
 > data i ett script. Problemet är att jag inte hittar några användbara
 > referenser, och mina försök hittills har varit fruktlösa.

 Jag har för mig att RTS sätts automatiskt när du öppnar serieporten för
 läsning. Om inte kan du nog få den att göra det med stty(1). Kruxet sen är
 att läsa tillräkligt lite. Du borde kunna använda nåt liknande detta:

 #!/bin/sh
 read line < /dev/ttyS1

Enligt beskrivningen: RTS skall sättas till logisk 0 (+12 V.)
Under windows får jag upp resultaten snyggt och prydligt i ett vanligt
terminalprogram.

 > Men det kräver förstås att du får radslut från ditt externa kort. Annars
 > kommer read att hänga i väntan på radslut eller EOF. Om du inte får
 radslut och inte kan fixa så ditt externa kort ger det på ett enkelt sätt
 får du skriva en liten C-snutt (eller liknande) som läser rätt mängd data
 > och skriver ut det intressanta.

Resultat exempel: (som det kommer upp i term.prog. i windows)

12.3 02.8 -04.7 45.3
12.3 02.8 -04.7 45.3

Så om jag bara kommer åt mina data på serieporten och inte får knastecken
(vilket jag hittills endast lyckats få..) så funkar read line < /dev/ttySn.


 > > Data kommer från en bunt SMT160 tempgivare vilka via ett externt
 > kort avkodas och resultaten sänds som ascii på formen
 > "20.1 23.7 43.4" via ett seriellt interface. Det externa kortet drivs
 > av spänningen från RTS. Dessa mätdata vill jag logga med vissa
 > tidsintervall, därav script..

 Är det kortet svårt att bygga? Jag mäter själv lite temperatur med SMT160
 kopplad till game-porten. Denna lösning ger möjlighet att läsa av upp till
 fyra givare parallellt, men kräver tyvärr att man pollar porten under ett
 par sekunder och det är ju inte så snyggt eller snällt. Dessutom blir
 resultaten lite halvskakiga.


Intressant! Det är alltid lika kul med olika metoder för att uppnå ett visst
resultat med givet utgångs material. Själv funderar jag på att
fortsätta använda
externa enheter, där jag tänkt använda AVR-riscprocessor. Nackdelen är att
det "bara" är en 8 bitars.. lämpligaste val borde vara att nyttja en 16 bitars
åtminstone. Men detta ligger fortfarande bara i funderings-stadiet. Först vill
jag experimentera litet med det jag nu har, sedan får man se vad resultaten
pekar på att jag skall nyttja.

 >
 Lycka till!
	/Anders
...

Hälsningar,
/Karl
--

*********************************************************
*	Vänliga hälsningar		Kaddik@kaddik.mine.nu	*
*	Örjan Kaddik		Alt: kaddik@telia.com		*
*********************************************************



Reply to: