Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

25/07/2012 #1


duda prender un led PIC 16f876 en lenguaje C
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

25/07/2012 #2
Moderador

Avatar de Chico3001

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...
26/07/2012 #3


De verdad Muchas gracias por tu respuesta.
26/07/2012 #4

Avatar de camarohero

así mismo, es común que lo encuentres como while(true)
13/12/2012 #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);
}
}
13/12/2012 #6

Avatar de Ajna

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
13/12/2012 #7
Moderador

Avatar de D@rkbytes

alvarotasco dijo: Ver Mensaje
Buenas noches. Una duda que tengo es como sabe uno cuales Fuses utilizar, aclaro que apenas ando empezando a programar.
Saludos.
Este documento que adjunto te va a servir para que sepas el significado de los fuses, y para que sirven.
Al menos te servirá para entender los del PIC que tienes, ya que para otros PIC existen más.

Suerte.
Archivos Adjuntos
Tipo de Archivo: doc Significado de los Fuses.doc (38,0 KB (Kilobytes), 222 visitas)
13/12/2012 #8


Muchas gracias..

Con respecto al programa si esta bien escrito o le falta cosas o le sobran... Gracias


D@rkbytes dijo: Ver Mensaje
Saludos.
Este documento que adjunto te va a servir para que sepas el significado de los fuses, y para que sirven.
Al menos te servirá para entender los del PIC que tienes, ya que para otros PIC existen más.

Suerte.
13/12/2012 #9
Moderador

Avatar de D@rkbytes

alvarotasco dijo: Ver Mensaje
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.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.