Autor Tema: AYUDA CON ESTADO DE UN LED  (Leído 2024 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado jumu

  • PIC12
  • **
  • Mensajes: 83
AYUDA CON ESTADO DE UN LED
« en: 15 de Febrero de 2013, 19:59:58 »
buenas tardes a todos...bueno necesito que me ayuden en un proyecto...lo que quiero hacer es lo siguiente comunicar un celular con OS Android con un PIC16F887 mediante un modulo de bluetooth, la comunicacion ya la hice...en el android van a ir varios botones y cada boton tiene una letra como variable...cuando presiono algun boton el celular enviara la letra que corresponda a cada boton mediante bluetooth, el modulo lo recibe y lo envia al pic y el pic mediante la sentencia Select Case buscara que letra es y hara lo que diga letra...ahora cuando envio otra letra aqui es donde es el problema porque cuando envio otra letra el pic lo recibe bien pero cuando enciende el led de la segunda letra el primer led se apaga...no se como mantenes ese estado de 1 hasta que yo diga que se apague...no se si me explico bien...aqui dejare el codigo...muchas gracias
Código: [Seleccionar]
program android_pic
dim cmd as byte

sub procedure Iniciar_pic ()
'Determinar Salidas (0) y Entradas (1)
TRISA=%11111111
TRISB=%00000000
TRISC=%10000000
TRISD=%01111111
TRISE=%11111111
'Limpiar todas las salidas
PORTA = 0
PORTB = 0
PORTC = 0
PORTD = 0
PORTE = 0
end sub

main:
  UART1_Init(9600)
  Delay_ms(100)
  Iniciar_pic

  while (TRUE)
    if (UART1_Data_Ready() <> 0) then
      cmd = UART1_Read()
      select case cmd
      case "a"     'Estas con las variables para encender cada leds.
        portb.0 = 1
      case "b"
        portb.1 = 1
      case "c"
        portb.2 = 1
      case "d"
        portb.3 = 1
      case "e"
        portb.4 = 1
      case "f"
        portb.5 = 1
      case "g"
        portb.6 = 1
        portb.7 = 0
      case "h"
        portd.6 = 1
      case "i"
        portd.7 = 1
      case "j"     'Estas son las variables para apagar los leds.
        portb.0 = 0
      case "k"
        portb.1 = 0
      case "l"
        portb.2 = 0
      case "m"
        portb.3 = 0
      case "n"
        portb.4 = 0
      case "o"
        portb.5 = 0
      case "p"
        portb.6 = 0
        portb.7 = 1
      case "q"
        portd.6 = 0
      case "r"
        portd.7 = 0
      case else
        portd.5 = 1
      end select
    end if
  wend
end.
alguien que me ayude..

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: AYUDA CON ESTADO DE UN LED
« Respuesta #1 en: 15 de Febrero de 2013, 20:31:36 »


Revisa la sintaxis de tu compilador, probablemente te falta un BREAK para cada CASE, y resulta raro que no pongas un punto y coma al final de cada sentencia, es algo estandar en C.

En C de Microchip se escribiría:


Código: [Seleccionar]
switch (cmd)
{
   case "a":
        PORTBbits.RB0 = 0;
        break;
   case "b":
        PORTBbits.RB1 = 1;
        break;  
   default:
        break;
}



Desconectado jumu

  • PIC12
  • **
  • Mensajes: 83
Re: AYUDA CON ESTADO DE UN LED
« Respuesta #2 en: 15 de Febrero de 2013, 20:50:08 »
gracias por responder...y pues yo no estoy programando en C este es basic con Mikrobasic...probare con el break a ver que tal me va..
bueno ahorita acabo de probar y nada cuando le pongo break lo que me hace es frenar el select case...y no me permite encender otro led...
lo que quiero hacer es que cuando llegue alguna letra...se enclave el estado del led de dicha letra...
« Última modificación: 15 de Febrero de 2013, 21:00:51 por jumu »


 

anything