#define _XTAL_FREQ 8000000
void main (void){
TRISBbits.RB0 = 0;
while (1){
LATDbits.LATD0 = ~LATDbits.LATD0;
__delay_ms(1000);
}
return;
}
¿Qué es un microcontrolador?
Introducción a los microcontroladores
CaracterÃsticas comunes de microcontroladores PIC
Eligiendo un microcontrolador
Arquitectura de un microcontrolador
Comprar y programar tu primer microcontrolador
Componentes básicos para la programación de Microcontroladores
Módulos avanzados y especializados
IDE de desarrollo y los bits de configuración
Mi primer programa en C
Manejar entradas y salidas básicas
Cómo conectar un microcontrolador
Manejo de elementos de salida
Manejo de elementos de entrada y salida (pulsadores y leds)
Manejo de sensores digitales
Cierre del curso
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 6
Preguntas 2
#define _XTAL_FREQ 8000000
void main (void){
TRISBbits.RB0 = 0;
while (1){
LATDbits.LATD0 = ~LATDbits.LATD0;
__delay_ms(1000);
}
return;
}
Los microcontroladores disponen de muchos registros de control de sus periféricos, dentro de los cuales se encuentran los registros para configurar los puertos de I/O, puertos ADC, PWM, UART, SPI, USB, Interupciones.
#define _XTAL_FREQ 8000000
#include <xc.h>
#include "config.h"
void main(void) {
TRISB0 = 0;//puerto RB0 como salida, El purto B tiene 8 pines I/O, se direccionan desde el 0 hasta el 7
while(1){
//RB0 = 1;//pone un valor alto en el pin PORTB-0
LATB = 1;//pone un valor alto en el pin PORTB-0, los otros puertos de PORTB son cero.
__delay_ms(1000);//El microcontrolador se mantiene en ésta posición por 1.000 mili-segundos.
RB0 = 0;//pone un valor bajo en el pin PORTB-0
__delay_ms(1000);
}
return;
}
amigo por que usas delays. Brooo brooo espero que sea solo par el ejemplo del led. aun asi es buenas practicas no usar delays por que dejan colgado tu programa. se recomienda el uso del sysTick
Este procedimiento SOLAMENTE VA A FUNCIONAR si lo hacen con el PIC 18F4550, si requieren utilizar otro aunque sea la mismo Familia y gama (por ejemplo: PIC 18F4523).
No va a funcionar debido a que los header (xc.h) son muy diferentes. Asà como también la manera de definir nombres y el status de los puertos.
Les dejo un ejemplo para el 18F4523:
#include <xc.h>
#include "18F4523-config.h"
#define _XTAL_FREQ 8000000
//#include "flex_lcd.h"
#include<string.h>
#include<stdio.h>
//#include "i2c/i2c.h"
//#define SW1 PORTCbits.RC3
//#define SW2 PORTCbits.RC2
//#define SW3 PORTCbits.RC1
#define LED_1 PORTCbits.RC2
//#define LED_2 PORTDbits.RD2
//#define LED_3 PORTDbits.RD3
Excelente clase
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?