TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: yamilongiano en 29 de Abril de 2015, 16:42:52

Título: RS-232+pic16f877A+mikro C pro para control led.
Publicado por: yamilongiano en 29 de Abril de 2015, 16:42:52
hola a todos he cambiado de lenguaje al mikro C pro.  pero me he encontrado con el problema que soy un newbie jajajaj. bueno aunque la logica es la misma que en el otro lenguaje parece que no manejo adecuadamente las variables, falta mas experiencia en C.



les presento mi codigo, pero no logro hacer funcionar los IF

Código: [Seleccionar]

char a;
unsigned char  Temp,txt;

 void newline(){
 UART1_Write(13); // Carriage Return
 UART1_Write(10); // Line Feed
}
void main() {
  // ANSEL  = 0;                     // Configure AN pins as digital
  // ANSELH = 0;
  TRISA=0b000111;

  UART1_Init(9600);               // Initialize UART module at 9600 bps
  Delay_ms(100);                  // Wait for UART module to stabilize
  newline();
  UART1_Write_Text(" --------");
  newline();
  UART1_Write_Text("| RS-232 |");
  newline();
  UART1_Write_Text(" --------");
  newline();
  UART1_Write(10);
  UART1_Write(13);


  while (1) {                                // Endless loop
              UART1_Write_Text("prender led ");
              newline();
              UART1_Write_Text("ingrese a o b: ");


  while(!UART1_Data_Ready());
  Temp = UART1_Read();
  newline();
  UART1_Write_Text("ingresaste: ");
  UART1_Write(Temp);
  newline();
  Delay_ms(800);

  if(temp==a){
               PORTA.B3=1;
               Temp=0;
              }
   if(temp==b){
               PORTA.B3=0;
               Temp=0;
              }
}}



lo que quiero lograr es bastante simple solo quiero enceder el led al enviar una letra por teclado. el programa compila bien. pero no enciende el led. osea que no se cumplen las condiciones de los if. si pongo el codigo PORTA.B3=1; fuera de los IF el led prende sin ningun problema.

tambien me envia los mensajes

Título: Re: RS-232+pic16f877A+mikro C pro para control led.
Publicado por: KILLERJC en 29 de Abril de 2015, 23:55:11
Tal ves el error esta en:

if(temp==a){

por

if(Temp=='a'){
Título: Re: RS-232+pic16f877A+mikro C pro para control led.
Publicado por: yamilongiano en 30 de Abril de 2015, 01:19:39
ese era el problema me di cuenta despues un gustaso y muchas gracias por la solucion. :-/ (error de novato)

ahora estoy jugando con un boton que presionado 1/2 segundo apague y al presionarlo encienda.
Título: Re: RS-232+pic16f877A+mikro C pro para control led.
Publicado por: KILLERJC en 30 de Abril de 2015, 03:35:45
suele pasar, suerte con lo que estes haciendo  :)