Sådan bruger RS232 senderen afbryde ved hjælp af C?

T

thangaduraibeece

Guest
Hej,
Jeg skal bruge en sender og modtager afbryder afbryder i C.
Jeg kodede samme, men dets arbejdsmetoder tider og ikke wrking resterende tid.
Hvis nogen tænker på at hjælpe mig, så jeg vil sende den kode .... Please svar mig ... Det presserende hjælpe ....

 
Hej,
Det er svært at vide, hvad dit problem er, som du har sagt noget om den hardware, du forsøger at bruge?Fortæl os mere.
Bob.

 
I vinduer Jeg tror, at afbryde ville blive behandlet som en begivenhed, og du vil få en besked fra den OS i en callback funktion.Du behøver ikke håndtere afbryde dig selv, medmindre du ønsker at skrive og installere enhedsdriveren til den serielle port selv.Og så er du i en helt ny bold spil.Med MSComm ActiveX-objektet Jeg tror, det er bare en OnComm () begivenhed.

 
I C-program, der kører på min PC med Windows OS, jeg ønsker at sende en tre-byte gennem RS232.I er at videregive oplysningerne på følgende måde:

/******************/
usigned char noofchars = 3;
/ / temp er en pointer til et array containg de tre 1 byte data
while (noofchars)
(
outportb (PORT1, * temp);
temp ;
noofchars -;
)
/ / Bemærk: Jeg har deaktiveret FIFO sætte bit
/**********************/

For denne de tre data overføres løbende på et tidspunkt, når jeg søger på bits ved hjælp CRO, og nogle gange de første data overføres løbende, og der er en tid hul på omkring 5 millisekund, og derefter den næste byte overførsel.
Jeg ved, hvorfor dette sker.

 
Hej,
Hvis afstanden er kun ca 5ms og derefter overførslen fortsætter, er det sikkert bare på grund af Windows-operativsystemet interupting dit program til at gøre noget andet, som sit ophav betragtes som vigtigere.Er en 5ms pause et problem for dig?Den slags ting sker hele tiden under Windows.
Serial port handling i henhold til Windows er et lavt prioriteret opgave for så vidt som operativsystemet er berørt så mange andre opgaver, systemet er i stand til at afbryde den.Jeg tror ikke, der er faktisk noget galt med, hvad du har gjort, kan det være muligt at ændre prioriteringen af dit program, så har det første opkald på systemets ressourcer, hvis det er en gang kritisk program, jeg ved, det er muligt, men Personligt har jeg faktisk aldrig gjort det endnu, så kan ikke rådgive dig, hvordan du gør dette.Jeg tror ikke, det er på grund af et system afbryde handling og ikke fungerer korrekt.
Bob.

 
Hej,
Jeg besvarer dig efter min test.
Faktisk er tiden mellem to bytes bliver varieret og ikke er under konstant tid hul.
Hvad jeg observerede, er, at det varierer fra 3 millisekunder til 120 millisekunder.
Hvad jeg er bekymrende er, at jeg kan tolerere en tidsforsinkelse på 5 millisekunder i min application.but det er varierende op til max på 120 millisekunder.
Jeg har en tvivl om, at vil det være løse, når jeg køre dette program i ren DOS snarere end at køre i Windows eller i kommandoprompten i Windows OS.
Whats ur idé?

 
Hej,
Hvad du har fundet overrasker mig ikke.Kørsel i henhold til en kommandoprompt med de nuværende versioner af Windows vil gøre nogen stor forskel for de forsinkelser, du får så dette er virkelig stadig dit program, der kører under Windows.Hvis du har en maskine, der kører ren DOS-Jeg forventer, du vil have mindre forsinkelser, men jeg har ikke rigtig fik meget nylige erfaringer med at arbejde med den serielle port under DOS.
hilsen
Bob.

 
Hi Bob,
Jeg arbejdede i dag med tolerance på en sådan forsinkelse (120 ms). Da din rådgive jeg planlagt at prøve det i en maskine, der kører i et DOS-miljø tomorow.
Jeg har en mere tvivl er der mulighed for at indstille prioritet for ansøgningen, mens den kører i windows.I fundet der er en facilitet i Windows til at indstille prioriterede manuelt fra joblisten window.I planlagt til at køre min test ved fastsættelse af en høj prioritet i morgen og lad u know.If det virker fint, jeg er nødt til at indstille prioritet fra C-koden i min ansøgning, snarere end at ændre det i Jobliste vinduet da brugeren har for at indstille prioritet, når han nogensinde lukke og genåbne application.Because prioritet vil blive nulstillet, når ansøgningen bliver lukket.

 

Welcome to EDABoard.com

Sponsor

Back
Top