TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: kruskal en 15 de Mayo de 2004, 19:05:00
-
Por indicaciones de los mas entendidos debido a su mayor cantidad de memoria, hace dos dias me compre un PIC 18F452. Emocionado llege a probarlo e hice un pequeño programa muy simple que encendiera tres led conetados a A0,B0yB7. ¡Sorpresa! a pesar de ser sencillisimo no funciono bien pues los led se encienden erraticamente y le puse un retardo de 500ms. Lo compile para un 16F84 y encendian los led perfectamente.
Aqui va el codigo. Alguien me puede explicar que estoy haciendo mal???. Por favor.........
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
set_tris_a(0b00000000);
set_tris_b(0b00000000);
void main(void)
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_wdt(WDT_OFF);
while (1)
{
output_high(PIN_B7);
output_high(PIN_A0);
delay_ms(500);
output_low(PIN_B7);
output_low(PIN_A0);
output_high(PIN_B0);
delay_ms(500);
output_low(PIN_B0);
delay_ms(500);
}
}
Cristian
kruskal@hotmail.com
-
El set_tris_a(0b00000000); y el set_tris_b(0b00000000); mételos dentro del main.
-
Hola, ok pocher esta en lo cierto, pero cometes otro error, set_tris_a(0b00000000); y el set_tris_b(0b00000000); ademas para usarlos debes agragar la directiva #use fast_io(x) donde x es el puerto a usar, usar este metodo es lo mejor pues ahorra codigo que se traduce en mas velocidad, pero debes atender tu la direccion de los puertos, no es automatico, agregando este par de cosas no dudo que funcionara tu micro.
saludos
ARIEL