RECEPCION DE CADENA DE CARACTERES MIKROC

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 พ.ย. 2024

ความคิดเห็น • 16

  • @ubamontero1620
    @ubamontero1620 3 ปีที่แล้ว

    para mandar la señal de proteus y que el led prenda en lavbiew?

  • @elementalwattson
    @elementalwattson 4 ปีที่แล้ว

    Grosso!!!! Gracias!!!

    • @elementalwattson
      @elementalwattson 4 ปีที่แล้ว

      ​@@iSebas Funciona, ya lo hice. El problema que tengo es que "se tilda". Pasé mi código a CCS, parece funcionar bastante mejor, aún así, al cabo de un tiempo se tilda. Problema "similar" que ocurre en MikroC. Así que estoy teniendo el mismo problema en ambos compiladores. Esto supongo que ya no es un problema de los compiladores, sino que es algo que me estoy pasando por alto. Vamos a los datos duros:
      Mi proyecto consiste en controlar unos dispositivos, uno por PWM, otro por timer1 (interrupción), mediante puerto serial que también tiene su interrupción. Además tengo planeado controlar 3 dispositivos más por el puerto B.
      OBS i: Tengo pickit2clone (me compré el pickit3.5 de Microchip, pero aún no me llega) y de vez en cuando me pone "Unsupported device"
      OBS ii: alimento la protoboard con un alimentador de los que venden ya diseñados para esta placa de 3v3 y 5v, la cual consta de 2 reguladores LDO (AMS1117 3.3 y AMS1117 5.0 respectivamente), así que supongo que podría estar tratándose de un problema de consumo.
      Teoria mia: Posible "conflicto entre interrupciones".

    • @elementalwattson
      @elementalwattson 4 ปีที่แล้ว

      @@iSebas Oh, es un término que suelo usar y es similar al "tilt". Lo que ocurre es que se congela, se pega, se queda atascado. es un comportamiento inusual. Raro que cuando programo un micro haciendo esas funciones por separado funcionan todas y nunca se tilda. Pero cuando pongo todo el programa junto a hacer todo ese trabajo, se cuelga.

    • @elementalwattson
      @elementalwattson 4 ปีที่แล้ว

      @@iSebas Para mí sería un placer.

    • @elementalwattson
      @elementalwattson 4 ปีที่แล้ว

      @@iSebas Otra que se me ocurre es pastebinearte el código. Revisalo y me cuentas tu teoría. ¿Dale?

    • @elementalwattson
      @elementalwattson 4 ปีที่แล้ว

      @@iSebas Ya he solucionado el problema!!!! Se trataba de algo que ignoraba. Parece ser que cuando recibes y trabajas con cadenas de más de 3 caracteres, la UART se "tilda", motivo por el cual debes habilitar el uart reset por medio del WDT. Esto en CCS es muy simple: Basta con añadir "ERRORS" en el #USE RS232(.....,ERRORS)
      Ahora me queda un problema, y es que no me responde bien el tema de los buttons en la apk cuando le mando señal. No se encienden en orden. Te paso el link con las modificaciones que hice, además de que eliminé la interrupción por RDA, en su lugar utilicé en el loop infinito la función kbhit() para la recepción de datos. Pasaron 2 horas desde la última vez que encendí el alimentador en la proto y todavía no se ha tildado.

  • @DanielGarcia-vs4vo
    @DanielGarcia-vs4vo 4 ปีที่แล้ว

    quiero utilizar los caracteres, pero quiero que me lea y muestre el valor de un PORTx cuando reciba los caracteres que seleccione?

    • @DanielGarcia-vs4vo
      @DanielGarcia-vs4vo 4 ปีที่แล้ว

      @@iSebas jajajaja osea lo que usted hace para prender los leds poniendo el AM1 = 1, pero lo que yo quiero hacer es poner por ejemplo:
      C0 en el virtual terminal y que en un LCD me muestre el valor que tiene ese puerto, si tiene voltaje que me muestre ese voltaje.

    • @DanielGarcia-vs4vo
      @DanielGarcia-vs4vo 4 ปีที่แล้ว

      @@iSebas aaaaa okey, tendria que hacer esa funcion fuera de la interrupcion. Muchas graciass :D

    • @DanielGarcia-vs4vo
      @DanielGarcia-vs4vo 4 ปีที่แล้ว

      @@iSebas Como??. Podria mandarte mi programa para que lo vieras y me digas como.

    • @DanielGarcia-vs4vo
      @DanielGarcia-vs4vo 4 ปีที่แล้ว

      @@iSebas de hecho ya te entendí como, hice una función con un if (C0 = 1) donde tengo la formula para obtener el voltaje y esa función la declare en el main manteniendo lo otro y ya el LCD me muestra el valor del voltaje cuando le pongo C0 en el virtual terminal