Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Ejercicio resuelto en clase de Computación II
- * Fecha: 20/05/20
- * by Alejo S. Giles
- *
- Mapeo de contador: Mapear en salidas, los 4 (cuatro) bits menos
- significativos (nibble bajo) de una variable contador. El contador deberá
- incrementarse automáticamente cada un segundo, y reiniciase con cada
- flanco ascendente en la entrada.
- *
- * https://pastebin.com/9pRMtSJh
- */
- #include "config.h"
- //BLINK
- #define CONFIGURAR_LED_TEST TRISD1=0
- #define ENCENDER_LED_TEST LD1=1
- #define APAGAR_LED_TEST LD1=0
- //Para interactuar con las SALIDAS, utilizar:
- #define CONFIGURAR_SALIDAS TRISB=0
- #define ACTIVAR_SALIDA0 LB0=1
- #define DESACTIVAR_SALIDA0 LB0=0
- #define ACTIVAR_SALIDA1 LB1=1
- #define DESACTIVAR_SALIDA1 LB1=0
- #define ACTIVAR_SALIDA2 LB2=1
- #define DESACTIVAR_SALIDA2 LB2=0
- #define ACTIVAR_SALIDA3 LB3=1
- #define DESACTIVAR_SALIDA3 LB3=0
- //Para interactuar con la ENTRADA, utilizar:
- #define CONFIGURAR_ENTRADA TRISA0=1
- #define ENTRADA_ACTIVADA RA0
- void MapeoDeContador(void)
- {
- static unsigned char contador = 0; //0b0000 0000 0000 0000 //0x0000
- static unsigned long centiseg_ant = 0;
- static bit entrada_activada_ant=0;
- //Boton de reset
- if(ENTRADA_ACTIVADA != entrada_activada_ant)
- {
- entrada_activada_ant= ENTRADA_ACTIVADA;
- //Si detectó un flanco ascendente
- if(ENTRADA_ACTIVADA) contador=0;
- }
- //Incremento del contador
- if (centiseg - centiseg_ant < 3) return;
- centiseg_ant = centiseg;
- contador++;
- //Queremos copiar los cuatro bits menos significativos del contador, en PORTB
- //Mapeo del nibble bajo (4 bits menos significativos)
- PORTB &= 0b11110000; // "Limpiamos" los 4 bits menos significativos de PORTB
- PORTB |= contador & 0x0F; //Copiamos los 4 bits menos significatovos de contador en PORTB
- }
- void Blink(void)
- {
- static unsigned long centiseg_ant=0;
- static bit led=0;
- if((centiseg - centiseg_ant) < 5) return;
- centiseg_ant=centiseg;
- led=!led;
- if(led) ENCENDER_LED_TEST;
- else APAGAR_LED_TEST;
- }
- void main(void)
- {
- setup();
- CONFIGURAR_SALIDAS;
- CONFIGURAR_ENTRADA;
- CONFIGURAR_LED_TEST;
- APAGAR_LED_TEST;
- while (1)
- {
- Blink();
- MapeoDeContador();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement