duda prender un led PIC 16f876 en lenguaje C

#1
la duda es como funciona exactamente el while en este programa, porque cuando no lo pongo no me prende el led, y que significa ese "1", porque yo no veo que halla ninguna condición.

Saludos.

#include <16f876.h>
#fuses xt,nowdt
#use delay (clock=4000000)
#byte tris_b = 0x86
#byte port_b = 0x06
#byte option_reg = 0x81

void main()

{
bit_clear(option_reg,7);
bit_set (tris_b,0);
bit_clear (tris_b,1);
while (1)
{
if( bit_test(port_b,0)==1)
bit_clear(port_b,1);

else
bit_set(port_b,1);
}

}
Apagado



Prendido

 
#2
El while (1) es un loop infinito... se pone para evitar que el programa salga del main y el PIC se pierda ejecutando instrucciones que no existen...

Basicamente lo que hace ese programa es que enciende el led mientras tengas presionado el boton...
 
#5
Buenas noches. Una duda que tengo es como sabe uno cuales Fuses utilizar, aclaro que apenas ando empezando a programar. Siempre veo que ponen XT,NOWDT pero tengo entendido que hay varios FUSES que van a depender del micro que estoy utilizando. Por Ejemplo para el caso del 16F876 que Fuses se pueden utilizar y en que caso. De paso anexo un codigo algo muy sencillo que arranque a programar espero que me den una mirada y me dice que les parace. En el ccs no me aperece error.

#include <16F876.h>
#use delay (clock=4000000)
#fuses XT,NOWDT
#byte puerto_b=0x06 //Por medio de la hoja de datos definimos la direccion del puerto b

void main() {
set_tris_b(0x00); //Todos los pines del puerto B estan como salidas

while(1){
output_high(PIN_B6);
delay_ms(100);
output_low(PIN_B6);
delay_ms(100);
}
}
 
#6
No te quiebres la cabeza, yo no uso PIC pero he manoseado el famoso CCS y he visto que tiene una especie de asistente "wizard" que te ajusta todos esos fuses que mencionas, por ejemplo te pregunta si quieres habilitar el perro guardian, si no pone automaticamente NOWTD con solo seleccionar dicha casilla
 
#9
Muchas gracias..

Con respecto al programa si esta bien escrito o le falta cosas o le sobran... Gracias
Esta bien el programa, y con los fuses que tiene, XT y NOWDT
Sin embargo quedará activado por default el fuse BROWNOUT (BOREN),
y si tienes problemas por caídas de tensión, el PIC entrará en reset.

Suerte.
 
Arriba