Esto es una copia del post que puse en el foro de Conket, a ver si alguien me puede ayudar, ya que por aki pasa mas gente.
Hola tengo este ejemplo de programa hecho en C (ccs en mplab) lo compilo y lo simulo y me va de puta madre. La cosa viene cuando lo paso con el icprog al pic, sin activar ningun fuse. No hace nada, solamente se enciende un led fijo. La cuestion es que utilizo un oscilador tipo rc r=4k7 y c=100nanos o c=47 nanos. A ver si alguien me puede hechar una mano, gracias.
Este es el programa.
#include <16f876.h>
#use delay(clock=4000000)
#fuses NOWDT,RC
#byte port_b=06
#byte port_a=05
void main()
{
set_tris_b(0x00);
set_tris_a(0x01);
set_tris_c(0x00);
port_b=8;
while(TRUE)
{
if(input(PIN_A0))
rotate_left(&port_b,1);
else
rotate_right(&port_b,1);
delay_ms(1000);
}
}
Se me olvidaba lo tengo todo configurado como pone en esta pagina que es la que segui para el ejemplo que os he dado.
http://personal3.iddeo.es/calaza/piccurso.htmHe probado un programa que hice en ensamblador que enciende un led (como el coche fantastico) es un programa muy tonto , Esperad que pongo el listado :
LIST p=16F876
Org 0x00
TRISB EQU 0x86
PORTB EQU 0x06
STATUS EQU 0X03
movlw 0x00
movwf PORTB
bcf STATUS,6
bsf STATUS,5
MOVWF TRISB
bcf STATUS,5
PRINCIPIO
movlw 0x01
movwf PORTB
call TIEMPO
movlw 0x02
movwf PORTB
call TIEMPO
movlw 0x04
movwf PORTB
call TIEMPO
movlw 0x08
movwf PORTB
call TIEMPO
movlw 0x10
movwf PORTB
call TIEMPO
movlw 0x20
movwf PORTB
call TIEMPO
movlw 0x40
movwf PORTB
call TIEMPO
movlw 0x80
movwf PORTB
call TIEMPO
movlw 0x40
movwf PORTB
call TIEMPO
movlw 0x20
movwf PORTB
call TIEMPO
movlw 0x10
movwf PORTB
call TIEMPO
movlw 0x08
movwf PORTB
call TIEMPO
movlw 0x04
movwf PORTB
call TIEMPO
movlw 0x02
movwf PORTB
call TIEMPO
movlw 0x01
movwf PORTB
call TIEMPO
goto PRINCIPIO
TIEMPO:
movlw 0xAA
movwf 0x20
DECREMENTO:
decfsz 0x20
goto DECREMENTO
return
end
En este programa no le indicamos el tipo de oscilador, ni la frecuencia ni nada. Y me funciona perfectamente, por lo tanto el pic funciona bien. No se que coño pasa con el CCS pero ningun programa de los que hago en C me funcionan.
A ver si alguien sabe que puede ser. Quiero hacer un intento de microbot como proyecto. Asias a todos.