Hola, tengo un curioso problema, estoy empezando en la programación de pics y tras realizar el encendido y apagado de un led con éxito decidí probar una secuencia con 5 leds conectados en el puerto B (RB0 a RB4).
El caso es que en mi programa he incluido 10 secuencias de encendido de leds y para mi sorpresa después de programar el pic sólo hace las 3 primeras secuencias, he probado a omitir las primeras y ver si se hace el resto y sí, las hace, pero nunca hace más de tres del total que le defina al programa.
USO:
MPLAB X IDE
XC8
PICKIT 3
16F84A
El código:
Tiene algo que ver con que no haya conectado el resto de pins que no uso a 5 voltios? Si así fuera... que pins se conectan? sólo los del puerto que uso (B)? o todos los puertos?
He visto que para pequeñas prácticas como esta no los suelen conectar, en que punto tendría que empezar a plantearme conectarlos?
Espero que me podáis ayudar porque no me esperaba este revés.
Gracias de antemano.
Saludos
El caso es que en mi programa he incluido 10 secuencias de encendido de leds y para mi sorpresa después de programar el pic sólo hace las 3 primeras secuencias, he probado a omitir las primeras y ver si se hace el resto y sí, las hace, pero nunca hace más de tres del total que le defina al programa.
USO:
MPLAB X IDE
XC8
PICKIT 3
16F84A
El código:
PHP:
/*
* File: main.c
* Author: nimio
*
* Programa para encender una secuencia de 5 Leds en el Puerto B (RB0-RB4)
*
* Created on 29 de octubre de 2012, 20:54
*/
#include <xc.h> // Librerías del compilador XC8.
#define _XTAL_FREQ 4000000 // Frecuencia Cristal 4MHz.
#pragma config FOSC=XT, WDTE=ON, PWRTE=OFF, CP=OFF //Configuración de Bits del PIC.
void main(void) {
TRISB=0; //Todos los puertos B como salidas.
PORTB=0; //Todas las salidas del puerto B a 0 voltios.
while (1) {
__delay_ms(600); // Retardo de 600 milisegundos.
PORTB=0b00000001; // RB0 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo de 600 milisegundos.
PORTB=0b00000010; // RB1 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo de 600 milisegundos.
PORTB=0b00000100; // RB2 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo a 600 milisegundos.
PORTB=0b00001000; // RB3 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo de 600 milisegundos.
PORTB=0b00010000; // RB4 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo de 600 milisegundos.
PORTB=0b00011111; // RB0-RB4 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo de 600 milisegundos.
PORTB=0b00010001; // RB0 Y RB4 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo de 600 milisegundos.
PORTB=0b00001010; // RB1 y RB3 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo a 600 milisegundos.
PORTB=0b00000100; // RB2 a 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo de 600 milisegundos.
PORTB=0b00010101; //RB0, RB2 y RB4 5 voltios y el resto a 0 voltios.
__delay_ms(600); // Retardo de 600 milisegundos.
}
}
Tiene algo que ver con que no haya conectado el resto de pins que no uso a 5 voltios? Si así fuera... que pins se conectan? sólo los del puerto que uso (B)? o todos los puertos?
He visto que para pequeñas prácticas como esta no los suelen conectar, en que punto tendría que empezar a plantearme conectarlos?
Espero que me podáis ayudar porque no me esperaba este revés.
Gracias de antemano.
Saludos