Hola otra vez, les cuento que ya funciono, pero lo que no entiendo es por que, aqui va el codigo:
#include <12f683.h>
#fuses INTRC_IO, NOWDT, NOPROTECT, NOMCLR
#use delay (clock=4000000) // Introduce la frecuencia de reloj
void main()
{
/* setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
set_tris_a(0x00); */
while (true)
{
output_high(PIN_a0);
output_high(PIN_a1);
output_high(PIN_a2);
output_high(PIN_a4);
output_high(PIN_a5);
delay_ms(500);
output_low(PIN_a0);
output_low(PIN_a1);
output_low(PIN_a2);
output_low(PIN_a4);
output_low(PIN_a5);
delay_ms(500);
}
}
como podran ver solo cambie el oscilador al INTRC_IO, al parecer las instrucciones del ADC no tuvieron ninguna incidencia, es decir que el C en si resetea el PIC a digital, por otro lado lo programe en ASSEMBLER, con este codigo:
__config 0x30D5
status equ 0x03
trisio equ 0x05
ansel equ 0x1f
optionr equ 0x01
gpio equ 0x05
v1 equ 0x20
v2 equ 0x21
reset org 0x00
goto inicio
inicio org 0x05
movlw b"001000"
bsf status,5
movwf trisio
clrf ansel
bsf optionr,5
bcf status,5
ciclo bsf gpio,0
bsf gpio,1
bsf gpio,2
bsf gpio,4
bsf gpio,5
call retardo
bcf gpio,0
bcf gpio,1
bcf gpio,2
bcf gpio,4
bcf gpio,5
call retardo
goto ciclo
retardo movlw 0x03
movwf v1
dos movlw 0x03
movwf v2
uno decfsz v2,1
goto uno
decfsz v1,1
goto dos
return
end
En este caso los pines gp0 y gp1 se quedan encendidos y otra vez se parece a lo que hace el BASIC, el C al resetear todo a digital (esto es un supuesto) medio arregla el problema, por cierto alguien sabe como arreglar este problema en ASSEMBLER y BASIC, se que no es el hilo, pero ya llevo un poco de camino recorrido aqui.
Se que falta a la instruccion de seteo de algo que no encuentro.
Como motivador le obsequiare un 10f206 al que me lo pueda responder =o).
Saludos Cordiales.