Contenido del curso
Contenido del curso
Jeffersson Muñoz Torres
Eduin Figueroa
Wilson Fernando Antury Torres
Juan D. Martin
Williams Ernesto Limonchi Sandoval
IVAN CARAPIA BARAJAS
Juan Antonio Oriza
Arturo O. Téllez
Daniel Enrique Astudillo Guzmán
Pedro David Juarez Leyva
Daniel Enrique Astudillo Guzmán
Eduardo Angel Mex Herrera
Guillermo Parejo
Oscar Rubio
Luis Arturo Cruz Cruz
Maximiliano Javier Alberto Carrizo
Diego Alejandro Gomez Angarita
Considero que se debió realizar la explicación de lo que es "TRIS" y "LAT"
Hay diferentes formas de decirle a un puerto que valor poner en sus pines de salida:
//Pone todos los pines del puerto B (LATB) en Alto. LATB = 0xff; //HEX LATB = 0b11111111; //Binario LATB = 255; //decimal```
también puedes usar desplazamientos ejemplo LATB = (1 << 5) es lo mismo que decir LATB = 32; en decimal o LATB= 0b00100000 en binario! es útil cuando no quieres sobre escribir otros bits, esto quiere decir, el valor 1 muevelo 5 veces a la izquierda (desde LSB a MSB)
#define _XTAL_FREQ 8000000 #define LED LATDbits.RD0 void main (void){ TRISDbits.RD0 = 0; //Salida digital while (1){ LATDbits.RD0 = ~LATDbits.RD0; __delay_ms(100); } return; }
deberíamos de colocar una resistencia a el led para evitar quemarlo ?
Lo recomendable es SI. El LED promedio usualmente trabaja a 20mA a 1.7-2.2 volts. La resistencia lo que hace es limitar la corriente que le llega al LED.
En el datasheet menciona que la corriente máxima de salida o entrada de cada pin es de 25mA, es bueno tener esto en cuenta para no dañar ningún pin del microcontrolador
No existe alguna forma de que sea automático la configuración de los Pines 0 al 8 en lugar de ir agregando valores manualmente en cada LATB? :0
Existen 3 formas de hacer referencia a un registro La primera es utilizando el registro completo, por ejemplo LATB, en este caso se le puede cargar un valor entre 0 y 255 (por que es un registro de 8 bits) y este valor afecta a todos los bits.
La segunda forma es refiriendote a un bit en especifico, por ejemplo LATBbits.LATB0 hace referencia solo al primer bit de ese registro, y solo puedes asignarle un valor de 0 o 1
La tercer forma es por bloques
Por ejemplo en la imagen hay 3 bits que comaprten el mismo nombre T0PS entonces puedes hacer referencia a esos 3 bits usando T0CONbits.T0PS y puedes cargarle un valor entre 0 y 7 por ser de 3 bits
Excelente Pedro David Juarez Leyva te agradezco muchísimo!! :D
Mi respuesta al reto, Solo cambiar el valor de: __delay_ms(100);
Excelente clasea aqui se demuestra que la implementacion de la electronica es mas tediosa que programacion por que toca programar e implementar y si no funciona realizar los cambios mientras en ejecucion de lenguaje codigo no habra averias, solo errores y brindara una ayuda de donde esta el error
cuando coloco __delay_ms(100); me sale error
void PRENDER_LED(void)
{
LATB=1;
__delay_ms(100);
LATB=0;
__delay_ms(100);
}
Buenas tardes @CelisMX . Estoy tomando el Curso de Programación de micros con C en @platzi . Estoy usando el PIC18f4550 y PICKIT 4. Seguí todas las lecciones hasta la 10, el IDE sube mi programa con éxito, pero el LED sigue sin parpadear. ¿Podrias ayudarme por favor?
ya te fijaste si el led es esta bien colocada a veces suele pasar que en la protoboard por cuestion de milimetros el terminal de del diodo no hace contacto con la lamina de la misma
Es recomendable colocar resistencias al led, con eso se protege de la corriente.