Autor Tema: Duda con un Programa en MicroC  (Leído 1330 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado miked

  • PIC10
  • *
  • Mensajes: 6
Duda con un Programa en MicroC
« en: 22 de Noviembre de 2011, 17:48:21 »
Hola buenas a todos, acabo de registrarme en este foro del que estoy aprendiendo mucho.

me he iniciado en esto de los Microcontroladores hace apenas 3 dias, todo lo que e aprendido lo e aprendido aqui.

Mi problema es qye kiero crear un programa para que al darle al PULSADOR se me enciada en led y al darle otra vez se apague.

e probado con esto

   int cont;

void main(){

 trisb=0x00;
 trisc=0x01;
 portb=0x00;
 cont=0;

 

 while(1){                    //bucle...

     if(portc=1||cont=1);     //si pulsamos o el contador tiene un 1 el led se activa
     {
          portb=1;
          delay_ms(100);
          cont=cont+1;
      }
      if(cont>1);             //si en contador de vuelve a poner a >1 se reinicializa a 0
       {
         cont=0;
       
       }
}


Muchas gracias por vuestro tiempo y espero apernder mucho con vosotros

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda con un Programa en MicroC
« Respuesta #1 en: 22 de Noviembre de 2011, 18:10:19 »
tienes varias cosas mal

seria if(portc==1||cont==1), si pones un = lo que haces es asignar ese valor, no compararlo. Ademas seria PORTC.RC0, RC1... debes elegir que PIN es el que tiene el pulsador.

al poner PORTB=1 asignas 1 a los 8 bits, en este caso seria el RB0, pero te recomiendo que pongas PORTB.RB0 para que asi te sea mas facil entenderlo, cada puerto son 8 pines para que asi lo entiendas mejor, no por ello todos los puertos tienen 8 pines, pero es una buena costumbre que lo hagas asi.

Si lo que quieres es que con 1 pulsacion se encienda y 1 se apague lo puedes hacer de esta manera

if(PORTC.RC0) {
PORTB.RB0=!PORTB.RB0;
delay_ms(100);
}

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Duda con un Programa en MicroC
« Respuesta #2 en: 22 de Noviembre de 2011, 18:20:51 »
En mikroC el bit o pin se asigna por Fx, por ejemplo PORTB.F0 sería RB0, etc. Podes buscar los manuales que hay en la pagina de mikroelectronica, son bastante completo  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado miked

  • PIC10
  • *
  • Mensajes: 6
Re: Duda con un Programa en MicroC
« Respuesta #3 en: 22 de Noviembre de 2011, 18:24:40 »
Muchas gracias de nuevo.

me quito  muchas dudas ver tu ejemplo.

solo tengo una pregunta mas

 if(PORTC.RC0) diciendo esto el programa ya comprende que es cuando le mande un 1 al pin 0 de rc?


gracias suky buscare ahora!

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda con un Programa en MicroC
« Respuesta #4 en: 22 de Noviembre de 2011, 18:32:35 »
si, si no pones nada, de ==, >, <.... es cualquier numero distinto de 0, si pones !PORTC.RC0 es lo inverso, es decir, si es 0 seria verdadero, si es un numero distinto de 0 seria falso.


 

anything