begin process at 2012 02 08 17:21:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

timer asynchrone


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

timer asynchrone

samedi 3 mai 2008 à 13:27:37 | timer asynchrone

stender

Bonjour,

je cherche à faire clignoter des LEDs via le port serie ça ok :

function OPENCOM(OpenString:PChar):Integer; stdcall; external 'RSCOM.DLL';
procedure CLOSECOM(); stdcall; external 'RSCOM.DLL';
procedure RTS(d:WORD); stdcall; external 'RSCOM.DLL';
procedure DTR(d:WORD); stdcall; external 'RSCOM.DLL';

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=True;
if SortieClgn=1 then begin
SortieClgn:=0;
end
else
begin
SortieClgn:=1;
end;
RTS(SortieClgn);   (LED1 rouge)
DTR(SortieClgn);  (LED2 verte)
end


Mon problème est d'avoir un clignotement asynchrone sur les LEDs
allumée une LED 1seconde puis éteinte 5secondes.
Puis second problème avoir alternativement (LED1 rouge) puis (LED2 verte) tout en pouvant gérer l'asynchronisme !.

des infos pour m'aiguiller ?
un composant timer tout près ?

merci d'avance

samedi 3 mai 2008 à 17:59:54 | Re : timer asynchrone

Francky23012301

Membre Club
Salut

A-Premiere partie :

procedure TForm1.Timer1Timer(Sender: TObject);
begin

Timer1.Enabled:=True;<----- Ne sert à rien
if SortieClgn=1 then begin
SortieClgn:=0;
end
else
begin
<----Sert à rien
SortieClgn:=1;
end;
<----Sert à rien
RTS(SortieClgn);   (LED1 rouge)
DTR(SortieClgn);  (LED2 verte)
end;


Ton code est un peu caca

Procedure plus simple

procedure TForm1.Timer1Timer(Sender: TObject);
begin

   Timer1.Enabled : =False
   SortieClg : =Not
SortieClg ;//<--SortieClg est un boolean
   RTS(SortieClgn);   (LED1 rouge)
   DTR(SortieClgn);  (LED2 verte)

  Timer1.Enabled : =True;
end;

Le probleme n'est pas dans le caractere asynchrone ou non d'un timer : Ce que tu cherches à faire s'en lancer les procédures RTS(SortieClgn) et DTR(SortieClgn) en même temps.  A cela deux solutions :
1)Solution crade : jouer sur l'interval du Timer. Un interval "important" implique que tu auras le sentiment de voir les deux leds s'allumer en meme temps.
2)Méthode propre : les threads => Je te renvois sur les nombreux tutos / discussions sur le sujet.


B-Seconde partie :

1)Méthode crade

Var
RedToBeViewed : Boolean=True;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled:=False;
  RedToBeViewed:=Not RedToBeViewed ;
  Case RedToBeViewed Of
    False : DTR(SortieClgn);
    True : RTS(SortieClgn);
  End;
  Timer1.Enabled:=True;
end;

2)Méthode propre  : les threads

Tchousss

samedi 3 mai 2008 à 20:35:02 | Re : timer asynchrone

stender

merci pour tes infos je vais aller voir les threads si cela peu m'aider :)
samedi 17 mai 2008 à 18:30:28 | Re : timer asynchrone

stender

Bonjour,

J'ai essayé de lire les Threads j'avoue que j'ai pas mal de mal à comprendre comment tout ça fonctionne !.

donc je vais essayer de vous poser la question suivante avec un ti dessin :)

Le but étant de comme je le disais dans mon premier message est que passer par les threads est la seule solution "propre" parce que j'avoue threads c'est quand même pas si évident que cela :(



merci d'avance pour votre aide.



Cette discussion est classée dans : dll, procedure, external, rscom, stdcall


Répondre à ce message

Sujets en rapport avec ce message

Utilisation dune dll - External ou pas ? [ par yoannd ] Salut, je suis en train de concevoir une dll et je viens de voir comment l'utiliser. Il semble qu'il soit possible de déclarer les fonctions de la dll Problème Econversion Error lors de l'affichage d'une info bulle dans une fenetre MDIChild dans une DLL [ par DarkSky ] Salut a tous,j'ai créer un projet MDI avec Delphi 6 donc les fenetre MDi Filles sont dans une DLL.j'ai une erreur EConversionError a la place de l'aff J'ai un mega probleme de dll ll ll lll bouuuuuuu[:(] [ par fcr_loch ] Voila j?ai un problème de dll.Ok avant de commencé je tenait juste a dire que je n?ai pas mit la source entière car ce serait trop long , de plus le c DLL et Creation Dynamique [ par meandcat ] Hi,J'ai une fiche principale (FORM1) et j'aimerai via une DLL y rajouter dynamiquement un bouton qui appelera une procedure perso a la DLL.// Programm thread & dll -> Exception [ par WSTBoss ] Bonjour à tous,j'ai une dll qui contient un thread, tout ce passe bien le thread marche comme il faut mais cependant lors du dechargement de la dll pa appel de procedure depuis dll [ par MoveX ] bonsoir les delphistes !comment appeler une procedure presente dans l unite d une form depuis une dll?//procedure dans l unite de la formprocedure TFo Probleme de Dll [ par jfdeterme ] Bonjour tout le monde,alors voila j'ai un petit probleme j'aimerai créé une Dllqui rend progressivement une fenetre transparente non-transparente mais une adr pour l'appelle de ma DLL [ par ada_azoul ] bonjour a tous Jai besoin de mettre un chemin variant dans l'appelle de ma DLL exple :             procedure DINDONC; external 'MADLL.DLL'  index 1; Plantage en fermant l'appli avec une DLL [ par CyberPunk2020 ] Voila j'ai repris un MSAgent dont j'ai inclus le code dans un DLL, mais a chaque fois que je ferme la feneter du projet j'ai un plantage. Sachant que chargement dynamique de dll [ par MoveX ] voici mon code:procedure TFormPrincipale.FormCreate(Sender: TObject);var Sr: TSearchRec; Index: TProcedure; Handle: THandle;begin if Fin


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,981 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales