probleme avec if et variable globale
bonjour,
jusqu'a maintenant je n'ai fait que du C et de l'assembleur pour microcontrolleur, ayant besoin de faire communiquer ce dernier avec le PC, j'ai choisi d'utiliser le delphi, la notion d'evenement est facile a comprendre, c'est la meme chose que les interruption sur µC.
le programme du µC :
le µC reçoit un packet, l'affiche sur ecran LCD, attend une seconde et renvoie un '!' a l'ordinateur
programme du PC :
un bouton permet d'envoyer un packet, apres j'ai un evenement a chaque fois qu'un packet est reçu, si le packet reçu est un '!' alors je renvoi un packet .
1/
bon la ça ne me sert pas a grand chose, mais plus tard j'en aurait besoin car j'aurais besoin de passer certaine valeur de certain evenement a des autre, ai-je bien declarer la variable globale data dans le code?
2/
les if : en c on a les {} d'apres ce que j'ai compris il peuvent etre remplacer par begin end;
l'ai-je bien fait?
mon code PC :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CPort, CPortCtl, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ComPort1: TComPort;
ComDataPacket1: TComDataPacket;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComDataPacket1Packet(Sender: TObject; const Str: String);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
var
data: integer;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
Comport1.Connected := true;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Comport1.Connected := false;
end;
procedure TForm1.ComDataPacket1Packet(Sender: TObject; const Str: String);
begin
if Str = '!' then
begin
if Comport1.Connected = true then Comport1.WriteStr('F');
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Comport1.Connected = true then Comport1.WriteStr('F');
end;
end. |
j'utilise delphi 7 et la librairie comport 3
ce programme ne marche pas, je ne sait pas encore pourquoi, l'evenement du bouton fonctionne mais pas celui qui doit se declencher a chaque reception de packet