Spanish Problema con CallSubPlus y lectura del AD

jwgf

Member
Hola amigos, me he encontrado con un problema al que no encuentro explicación , envió el código super simple en donde leo el valor del
AD, sin problemas y luego llamo a una sub con el mismo comando pero no lee nada, en este caso valor Uno 290, valor Dos 0, alguna idea, gracias, Jorge

B4X:
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'Public variables can be accessed from all modules.
    Public Serial1 As Serial
    Private S1,LecturaADC As Pin
    Private valorTension As    UInt
    Private timerUno As Timer
End Sub

Private Sub AppStart
    Serial1.Initialize(115200)
    Delay(500)
    Log("AppStart")
    S1.Initialize(16, S1.MODE_OUTPUT)
    
    S1.DigitalWrite(True)
    valorTension = LecturaADC.AnalogRead
    S1.DigitalWrite(False)
    Log("valor Uno: ",valorTension)
    
    valorTension = 0
    S1.DigitalWrite(True)
    CallSubPlus("lectura",0,0)
    S1.DigitalWrite(False)
    Log("valor Dos: ",valorTension)
    
    timerUno.Initialize("timerTick",500)
    timerUno.Enabled = True
End Sub

Public Sub timerTick

End Sub

Public Sub lectura (tag As Byte)
    valorTension = LecturaADC.AnalogRead
End Sub
 

josejad

Expert
Licensed User
Longtime User
Hola jwgf:

Sin estar para nada seguro de lo que te voy a decir, prueba estas cosillas:
- A ver, según el manual, CallSubPlus no bloquea la ejecución del hilo, por lo que puede que el Log del valor, se muestre antes de que acabe la ejecución de la Sub lectura.
- Prueba a poner bajo el CallSubPlus un Delay (lo encontrarás un poco más abajo en el enlace al manual que te envío.

saludos,
 

jwgf

Member
Hola José, no viene por ahí el tema, ya que coloque el log en la subrutina y muestra el valor cero, en otras palabras realizo la lectura (en teoría) y después ejecuto el log. Pero por las dudas le agregue el delay y nada, es como si no se podría ejecutar una lectura de AD desde dentro de un reusable, si se te ocurre otra cosa la pruebo, gracias, Jorge
 

jwgf

Member
Solucionado, mal uso de CallSubPlus, lo usaba como si fuera un Call Sub normal y no advertía que seguía corriendo el programa, en realidad yo quería llamar a una subrrutina y eventualmente dentro de esta a otra, por lo que el uso de CallSubPlus esta mal. Gracias, José, Saludos
 

josejad

Expert
Licensed User
Longtime User
Si publicas cómo ha quedado tu código, puede servir para otros.

saludos¡¡
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…