fork download
  1. #include <xc.h>
  2.  
  3. // Configuración del microcontrolador (asegúrate de configurar los fusibles según tu necesidad)
  4. #pragma config FOSC = HS // Oscilador de alta velocidad
  5. #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
  6. #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
  7. #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
  8. #pragma config LVP = OFF // Low Voltage In-Circuit Serial Programming Disable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
  9. #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
  10. #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off)
  11. #pragma config CCP2MX = PORTC // CCP2 MUX bit (CCP2 input/output is multiplexed with RC1)
  12.  
  13. // Definiciones del oscilador
  14. #define _XTAL_FREQ 20000000 // Frecuencia del oscilador 20 MHz
  15.  
  16. unsigned int count = 0; // Variable de 16 bits para contar de 0 a 500
  17.  
  18. void main(void) {
  19. TRISD = 0x00; // Configurar PORTD como salida
  20.  
  21. while (1) {
  22. if (count <= 500) {
  23. LATD = count; // Mostrar el valor del contador en PORTD
  24. __delay_ms(500); // Retardo de 500 ms
  25. count++; // Incrementar contador
  26. } else {
  27. count = 0; // Reiniciar el contador cuando llega a 501
  28. }
  29. }
  30. }
Success #stdin #stdout 0.03s 25728KB
stdin
Standard input is empty
stdout
#include <xc.h>

// Configuración del microcontrolador (asegúrate de configurar los fusibles según tu necesidad)
#pragma config FOSC = HS // Oscilador de alta velocidad
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low Voltage In-Circuit Serial Programming Disable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off)
#pragma config CCP2MX = PORTC // CCP2 MUX bit (CCP2 input/output is multiplexed with RC1)

// Definiciones del oscilador
#define _XTAL_FREQ 20000000 // Frecuencia del oscilador 20 MHz

unsigned int count = 0; // Variable de 16 bits para contar de 0 a 500

void main(void) {
    TRISD = 0x00; // Configurar PORTD como salida

    while (1) {
        if (count <= 500) {
            LATD = count;    // Mostrar el valor del contador en PORTD
            __delay_ms(500); // Retardo de 500 ms
            count++;         // Incrementar contador
        } else {
            count = 0; // Reiniciar el contador cuando llega a 501
        }
    }
}