TODOPIC
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
. ¿Perdiste tu
email de activación
?
1 Hora
1 Día
1 Semana
1 Mes
Siempre
Ingresar con nombre de usuario, contraseña y duración de la sesión
Este tema
Este sub-foro
Todo el foro
Google
Inicio
Ayuda
Buscar
Ingresar
Registrarse
TODOPIC
»
Microcontroladores PIC
»
Lenguaje C para microcontroladores PIC
(Moderadores:
pikman
,
pocher
,
vszener
,
Suky
) »
Ciclo infinito dentro de un Case
« anterior
próximo »
Imprimir
Páginas: [
1
]
Ir Abajo
Autor
Tema: Ciclo infinito dentro de un Case (Leído 1469 veces)
0 Usuarios y 1 Visitante están viendo este tema.
darck_khronos
PIC18
Mensajes: 493
Ciclo infinito dentro de un Case
«
en:
11 de Octubre de 2009, 20:56:41 »
Tengo un problemita en esta parte del codigo
Código: C
case
'C'
:
lcd_gotoxy
(
x
,
y
)
;
//cursor para escribir mensaje
lcd_putc
(
"A Letra La Precione "
)
;
//muestra por pantalla el mensaje
delay_ms
(
150
)
;
x
++;
if
(
x
>
16
)
{
x
=-
8
;
y
++;
if
(
y
>
2
)
y
=
1
;
}
break
;
Lo que pasa es que ya probe poniendo
case 'C':
While(1);
case 'C':
a:
....
....
goto a;
y si me genera el efecto de movimiento en el mensaje el detalle es que cuando preciono A o B no me manda al menu donde se encuentran sus casos
Código: C
#include <18f4550.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP //ordenes para el programador
#use delay (clock=8000000) //Fosc=4Mhz
#include <kbd_lib.c> //libreria manejo TECLADO 4X4
#include <lcd_2.c> //libreria manejo lcd 4 bits
char
y
=
1
;
//indice columnas
signed
char
x
=
1
;
//indice filas
void
main
(
)
{
char
k
;
int
z
,
s
;
lcd_init
(
)
;
kbd_init
(
)
;
port_b_pullups
(
TRUE
)
;
lcd_putc
(
"
\f
Temp Actual="
)
;
lcd_putc
(
"
\n
Menu Pres A o B"
)
;
while
(
TRUE
)
{
k
=
kbd_getc
(
)
;
z
=
k
-
48
;
//Conversión numérica
switch
(
k
)
{
case
'A'
:
lcd_putc
(
"
\f
Limite superior"
)
;
lcd_putc
(
"
\n
Subir=C #=Back"
)
;
break
;
case
'B'
:
lcd_putc
(
"
\f
Limite Inferior
\n
Subir=D #=Back"
)
;
break
;
case
'C'
:
lcd_gotoxy
(
x
,
y
)
;
//cursor para escribir mensaje
lcd_putc
(
"A Letra La Precione "
)
;
//muestra por pantalla el mensaje
delay_ms
(
150
)
;
x
++;
if
(
x
>
16
)
{
x
=-
8
;
y
++;
if
(
y
>
2
)
y
=
1
;
}
break
;
}
}
}
En línea
MLO__
Colaborador
DsPIC33
Mensajes: 4581
Re: Ciclo infinito dentro de un Case
«
Respuesta #1 en:
12 de Octubre de 2009, 22:00:07 »
Pues si colocas un ciclo infinito dentro de un
case
, nunca va a salir de ahí no?
Que es lo que quieres que haga el programa? Que despliegue una marquesina con el texto que tiene y que según lo que se presione vaya a una parte del menú?
Saludos
En línea
El papel lo aguanta todo
Suky
Moderador Local
DsPIC33
Mensajes: 6758
Re: Ciclo infinito dentro de un Case
«
Respuesta #2 en:
12 de Octubre de 2009, 22:10:12 »
Linda marquesina MLO_
darck, puedes usar un do{...}while(Salir==0); Donde Salir sea puesto a 1 al pulsar una tecla.-
Saludos!
En línea
No contesto mensajes privados, las consultas en el foro
Imprimir
Páginas: [
1
]
Ir Arriba
« anterior
próximo »
TODOPIC
»
Microcontroladores PIC
»
Lenguaje C para microcontroladores PIC
(Moderadores:
pikman
,
pocher
,
vszener
,
Suky
) »
Ciclo infinito dentro de un Case
anything