CCCPaste

BlinkAsimetrico

/*
 * File:   demo.c
 * Author: Ing. Alejo S. Giles
 * 
 * UNLPam
 * Fac. de Ingeniería
 * Computación II
 *
 * Created on 29 de abril de 2020, 17:26
 * 
 * Compilador: XC8
 * 
 * Funcionalidad:
 * Blink Simetrico
 * 
 */
#include "config.h"

//Conectamos un LED en RD0
//Escribiendo el valor los registro
//#define CONFIGURAR_LED_TEST		TRISD = TRISD & ~(1<<0)
//#define ENCENDER_LED_TEST		LATD = LATD | 1
//#define APAGAR_LED_TEST			LATD = LATD & 0b11111110
//#define CS_LED_TEST				2

//Accediendo por el nombre del bit
#define CONFIGURAR_LED_TEST		TRISD0=0
#define ENCENDER_LED_TEST		LD0=1
#define APAGAR_LED_TEST			LD0=0
#define CS_LED_TEST				5

//Accediendo mediante la unión
//#define CONFIGURAR_LED_TEST	TRISDbits.RD0=0
//#define ENCENDER_LED_TEST		LATDbits.LD0=1
//#define APAGAR_LED_TEST		LATDbits.LD0=0
//#define CS_LED_TEST			10

void BlinkAsimetrico(void)
	{
	const int t_off=8;		//
	const int t_on=2;		//200ms
	
	static unsigned long centiseg_ini=0;
	static unsigned char t_espera=0;
	static bit led=0;
	
	if(centiseg-centiseg_ini < t_espera) return;
	centiseg_ini=centiseg;
	
	led= !led;
	
	if(led) 
		{
		ENCENDER_LED_TEST;
		t_espera=t_on;
		}
	else	
		{
		APAGAR_LED_TEST;
		t_espera=t_off;
		}

	}
void main(void) 
    {
    setup();
    CONFIGURAR_LED_TEST;
	
    while(1)
		{
		BlinkAsimetrico();
        }
    }