Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

29/06/2012 #1


Dudas varias con mi proyecto de electronica (programacion microcontrolador PIC)
Proyecto para una materia de la facu. (En realidad es capricho mio ponerme a programar pic, y ya que estoy lo presento como proyecto)

No especifique mucho en el titulo del thread porque pretendo usar este para ir preguntando todas mis dudas asi no dejo posts desparramados por todo el foro.

Estoy llevando a cabo el proyecto en mikroC y simulando en ISIS (proteus).

Ahora vamos al grano. El problema que estoy teniendo en este momento es con el PIC16F819, seleccione este PIC en base a mis necesidades (16 pines I/O y 2 entradas AD).
Mi problema esta en el puerto A, no puedo hacerlo andar como yo quiero. Ejecuto la simulacion con este codigo cargado:

Código:
void main(void){
TRISA=0;
TRISB=0;
PORTB=0;
PORTA=0;
                while(1){
                PORTA.F0=1;
                PORTA.F1=1;
                PORTA.F2=1;
                PORTA.F3=1;
                PORTA.F4=1;
                PORTA.F5=1;
                PORTA.F6=1;
                PORTA.F7=1;
                Delay_ms(500);
                PORTA.F0=0;
                PORTA.F1=0;
                PORTA.F2=0;
                PORTA.F3=0;
                PORTA.F4=0;
                PORTA.F5=0;
                PORTA.F6=0;
                PORTA.F7=0;
                Delay_ms(500);
                }

                }
Lo que pretendo hacer es poner a 1 todos los puertos, esperar medio segundo y ponerlos a 0, volver a esperar medio segundo y que se repita.
Cuando lo simulo pasa lo siguiente:
-RA0 hasta RA3 se ponen en 0 logico.
-RA4 funciona bien (se prende y apaga cada 1/2 segundo)
-RA5 hasta RA7 quedan de color gris y no se bien que significa esto en proteus (¿sera el estado de alta impedancia?)

NOTA: leyendo el datasheet veo que el pin 5 es solamente de entrada, pero igual, los 7 pines restantes deberian funcionar bien y solo funciona bien 1 :(

Espero me puedan ayudar, gracias.

PD: Llevando a cabo el mismo ejercicio pero con el puerto B hace exactamente lo que yo quiero (prender y apagar todos los pines cada 1/2 seg).
29/06/2012 #2

Avatar de J2C

Nicoobrk

Lee bien la datasheet del Pic16F819 en la página 41 de 176 dado que debes proceder de cierta manera para confirmar que PORTA es usada solo para entradas o salidas.


Los Pic de MicroChip que poseen ADC por lo general en el Start Up arrancan como ADC !!!!.



Saludos, JuanKa.-


P.D.: No soy experto en esto, pero lo conozco muy por arriba.
29/06/2012 #3

Avatar de MusicMan

Lo que yo a veces he hecho es algo similar:

Código:
  output_a(0x00);
  delay_ms(100);

  while(TRUE){
     output_a(0b11111111);
     delay_ms(500);

     output_a(0x00);
     delay_ms(500);
}
.
.
.
Igual tampoco soy experto, pero eso sirve al menos para usar el puerto como entrada/salida digital.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.