Event Handler esterna Visual C

M

molocas

Guest
Cari amici,

Ho fatto un PIC basato interfaccia USB, ho collegato un pulsante per il PIC e quando ho spinta, un contatore viene incrementato.
Ho fatto un Visual C con un modulo di interfaccia e di una etichetta per visualizzare questo contatore.
La cosa è, l'unico modo e può vedere i numeri del contatore vengono incrementati è cliccando il mouse come un gestore di eventi.Ogni volta che faccio clic con il mouse, il ciclo ricomincia.

Ebbene, io vorrei omettere cliccando con il mouse e incrementare il proprio contatore con il pulsante del PIC.
Eliminare la routine di evento del mouse e non succede nulla.
Ho provato un sacco di combinazioni ma il Visual C programma, rimane ancora (I dont sapere dove)
in attesa di un evento, visualizzando solo il numero uno.

Il loop non continuare, se interrompere e riprendere il mio programma, viene visualizzato il numero 0 Etichetta pulsante se è aperto e 1 se è vicino, per cui i programmi di lavori ¡¡¡¡.
Per favore ho bisogno di aiuto ¡¡

I really appreciate qualsiasi.<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying o molto triste" border="0" />
 
Dovete aumentare il vostro evento.
Cerca nel file di aiuto per oggetto evento e manifestazione fuoco.
È possibile aumentare il caso, in risposta al pulsante.

 
Cari btbass,

Io non sono Shure se posso fare questo motivo io sono di nuovo in Visual C, ma io vado a vedere parte del mio codice, al termine della chiamata di routine GetData, variabile i ha solo 1 o 0.
1 per incrementare il contatore in label1 e 0 per non fare nulla.

//
void GetData (void)
(
DWORD BytesWritten = 0;
DWORD BytesRead = 0;
unsigned char OutputPacketBuffer [65];
unsigned char InputPacketBuffer [65];

InputPacketBuffer [0] = 0;
OutputPacketBuffer [0] = 0;

WriteFile (WriteHandle, & OutputPacketBuffer, 65, & BytesWritten, 0);
Readfile (ReadHandle, & InputPacketBuffer, 65, & BytesRead, 0);

i = InputPacketBuffer [1]; / / i = SW STATO
) / / RITORNO CON VALORE IN variabile i
//
pubblico: System:: Void label1_Click (System:: Object ^ sender, System:: EventArgs ^ e) (/ / gestore eventi Click / /

GetData (); / / chiamata GetData

if (i == 0) / / se i eq 0,
(
goto uno; / / è come lasciare counter
)
else / / incremento, se i = 1
(
tmp = tmp 1;
a: i = tmp;
label1-> Text = i.ToString ();// chiamata visualizzazione numero Label1

)
)
);
)
Come si può vedere Void label1_Click controllo della manifestazione.
I really appreciate se potete aiutarmi con un po 'di codice per avere un'idea.

Thanks a lot.

 
Hi molocas
Sto usando Visual Studio, ma io sono di programmazione in C #.
Questo sarebbe facile in C #.

Un modo per farlo è di utilizzare un timer oggetto.Impostare il timer fino a 50 ms o interrompere ogni modo per controllare il dispositivo USB.
Se si utilizza Visual Studio C , si può mettere un timer sul tuo modulo dalla casella degli strumenti e impostare le proprietà.
Altrimenti usa il file di aiuto, non ci dovrebbe essere un esempio di utilizzo di un timer.

È possibile scaricare gratuitamente le versioni express di Visual Studio VB, C # e C di Microsoft, ma si sono permessi solo per installare una versione in lingua su un PC.

 
Ho intenzione di provare timer, thanks a lot, I'll farvi conoscere.<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top