Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Leer un evento de GPIO (https://www.clubdelphi.com/foros/showthread.php?t=93511)

rseliman 22-10-2018 17:26:59

Leer un evento de GPIO
 
Hola a todos , estoy usando una raspberry pi y programando con lazarus ...estoy leyendo un evento de un caudalimetro con

Código Delphi [-]
Caudal := Main.GPIO.PinValue[PinCaudal1];

         if Caudal = TPinValue.Low then CauState :=0 else CauState :=1;
La pregunta es la siguiente ...los tiempos del caudalimetro son cortos , y tratando de leerlo con un timer cada 1 milisegundo , me pierde pulsos , o sea ...deberia leer 4 pulsos y me lee solo dos , alguien me da una mano de como leerlo de otra forma que no sea con un timer , sino que sea tipo interrupcion ??

Mil gracias a todos

Casimiro Notevi 22-10-2018 18:48:53

Yo haría una pregunta: ¿Realmente es absolutamente necesario leer el valor 1000 veces por segundo?

rseliman 22-10-2018 19:29:25

Cita:

Empezado por Casimiro Notevi (Mensaje 529158)
Yo haría una pregunta: ¿Realmente es absolutamente necesario leer el valor 1000 veces por segundo?

el tema es que si no estoy leyendo justo en el flanco de subida del pulso lo pierdo ...por eso pregunto por una interrupcion para poder leer ese flanco

Gracias

Casimiro Notevi 22-10-2018 20:01:11

Me temo que no será exacta la lectura cada milisegundo, siempre pueden haber oscilaciones que depende de varios factores, reloj del procesador, ocupación de recursos por otros softwares e incluso del sistema operativo, etc.

rseliman 22-10-2018 20:21:49

Cita:

Empezado por Casimiro Notevi (Mensaje 529166)
Me temo que no será exacta la lectura cada milisegundo, siempre pueden haber oscilaciones que depende de varios factores, reloj del procesador, ocupación de recursos por otros softwares e incluso del sistema operativo, etc.


Asi es ....no se te ocurre una forma de soucionar el problema ??

Muchas gracias

Casimiro Notevi 22-10-2018 20:33:13

Se ha tratado el tema varias veces, no lo encuentro ahora mismo, aunque una búsqueda por internet me devuelve unos enlaces que puedes ir probando:
Uno, dos, tres, cuatro.

Casimiro Notevi 22-10-2018 20:35:30

Haz una búsqueda en los foros por QueryPerformanceFrequency

Mira este hilo.
Y este otro.

Casimiro Notevi 22-10-2018 20:41:21

Cita:

Empezado por Casimiro Notevi (Mensaje 529170)
Mira este hilo.
Y este otro.

En esos dos hilos resolverás tu problema.

rseliman 23-10-2018 01:26:06

Cita:

Empezado por Casimiro Notevi (Mensaje 529171)
En esos dos hilos resolverás tu problema.

Muchas gracias ...pruebo y despues comento

Saludos


La franja horaria es GMT +2. Ahora son las 20:40:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi