Autor Tema: PIC18F542  (Leído 2645 veces)

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

Desconectado kruskal

  • PIC16
  • ***
  • Mensajes: 108
PIC18F542
« 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

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: PIC18F542
« Respuesta #1 en: 15 de Mayo de 2004, 23:39:00 »
El set_tris_a(0b00000000);  y el set_tris_b(0b00000000); mételos dentro del main.

Desconectado pikman

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 682
RE: PIC18F542
« Respuesta #2 en: 16 de Mayo de 2004, 11:42:00 »
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



saludos
PikMan