Autor Tema: leer pin  (Leído 4699 veces)

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

Desconectado gongonni

  • PIC10
  • *
  • Mensajes: 6
leer pin
« en: 08 de Julio de 2010, 14:27:01 »
hola gente! primero de todo pedir perdon porque seguramente el post está repetido, pero no logro encontrar lo que busco porque el buscador de la pagina no me da resultados, le doy a buscar y va pasando el tiempo buscando pero no termina nunca... quizás es un bug.  :?

Estoy haciendo un pequeño programa para que al pulsar un boton, se encienda un LED. Pero tengo problemas con las funciones y el montaje.

El montaje consta del PIC 16F690 (el que traía el PICKIT 2 STARTER KIT) y un botón. (por supuesto, tambien el LED, que viene montado en placa) con una protoboard, tiré un par de cables para conectar el botón (o switch)..

Coloqué un extremo al pin A0, poniendolo a Vcc con OUTPUT_HIGH (PIN_A0) y luego el otro extremo al pin A1, he ido probando un poco las funciones, pero estoy un poco liado con ellas y no consigo hacer nada. Conceptualmente se que debo colocar el pin A1 como entrada, pero no se con qué funcion exactamente, hay el set_tris_a(1); port_a_pullups(true); y antes queria ponerlo a Vss con el output_low(PIN_A1); pero nada.

El pic tiene pull-ups internos y eso me lia aun más. También he buscado el manual CCS en español de esta web pero no lo encuentro.

os dejo el código. Sé que hay errores y algunas funciones como comentarios porque he ido probando... no acostumbro a hacerlo, pero el programa me corre un poco de prisa y aunque muchos dicen que se encuentra multitud de programas en internet, yo no los encuentro.

Como podreis ver en el codigo, primero intenté hacerlo mediante testeo del pin, luego con interrupcion, pero nada... no responde al pulsar el boton.
Muchisimas gracias por vuestra ayuda comunidad!

saludos! :-/

#if defined(__PCM__)
#include <16F690.h>
#FUSES INTRC,NOWDT,NOPROTECT,NOMCLR,PUT
#USE delay(clock=8000000)
#endif

//#include <math.h>
//#DEVICE (ADC=10)

#INT_RA
void interrupcionRB4_RB7() //Es un nombre de función
{
         delay_ms(10);
         output_high(PIN_C0);
         delay_ms(500);
         output_low(pin_c0);
}

void main ()
{
   unsigned int1 boton;
   
   //port_a_pullups(true);
   set_tris_a(1);
   //output_low(PIN_A0);
   output_high(PIN_A1);
   
   enable_interrupts (GLOBAL);
   enable_interrupts (INT_RA0);
   
   while(true)
   {
      //boton = input(PIN_A0);
      /*
      if(boton==0)
      {
         delay_ms(10);
         output_high(PIN_C0);
         delay_ms(500);
         output_low(pin_c0);
      }
      */
   }
}

Desconectado pablolode

  • PIC16
  • ***
  • Mensajes: 123
Re: leer pin
« Respuesta #1 en: 08 de Julio de 2010, 16:47:23 »
SIN DUDA hay muchos codigos que hacen le que quereis hacer en vuestro programa,
te recomiendo empesar leyendo y haciendo estas practicas sensillas del maestra VZENER.
AHI ESTA TODO LO QUE NESESITAS ,como dijo Mostaza Merlo... paso a paso
    
Ejemplitos en C para 16F648A
 
http://www.todopic.com.ar/foros/index.php?topic=4530.0