// Procédures utiles pour la carte MSP-EXP430F5529
// Pierre-Yves Rochat, 2020-22, EPFL, pyr@pyr.ch

#ifndef PYR_CARTEBLANCHE_H_
#define PYR_CARTEBLANCHE_H_

#include <msp430.h>
#include <stdint.h>

// Définition des LED et des poussoirs pour la carte "blanche"

#define Led1On P1OUT|=(1<<0)
#define Led1Off P1OUT&=~(1<<0)
#define Led1Toggle P1OUT^=(1<<0)
#define InitLed1 P1DIR|=(1<<0);Led1Off

#define Led2On P8OUT|=(1<<1)
#define Led2Off P8OUT&=~(1<<1)
#define Led2Toggle P8OUT^=(1<<1)
#define InitLed2 P8DIR|=(1<<1);Led2Off

#define Led3On P8OUT|=(1<<2)
#define Led3Off P8OUT&=~(1<<2)
#define Led3Toggle P8OUT^=(1<<2)
#define InitLed3 P8DIR|=(1<<2);Led3Off

#define Led4On P1OUT|=(1<<1)
#define Led4Off P1OUT&=~(1<<1)
#define Led4Toggle P1OUT^=(1<<1)
#define InitLed4 P1DIR|=(1<<1);Led4Off

#define Led5On P1OUT|=(1<<2)
#define Led5Off P1OUT&=~(1<<2)
#define Led5Toggle P1OUT^=(1<<2)
#define InitLed5 P1DIR|=(1<<2);Led5Off

#define Led6On P1OUT|=(1<<3)
#define Led6Off P1OUT&=~(1<<3)
#define Led6Toggle P1OUT^=(1<<3)
#define InitLed6 P1DIR|=(1<<3);Led6Off

#define Led7On P1OUT|=(1<<4)
#define Led7Off P1OUT&=~(1<<4)
#define Led7Toggle P1OUT^=(1<<4)
#define InitLed7 P1DIR|=(1<<4);Led7Off

#define Led8On P1OUT|=(1<<5)
#define Led8Off P1OUT&=~(1<<5)
#define Led8Toggle P1OUT^=(1<<5)
#define InitLed8 P1DIR|=(1<<5);Led8Off

#define Pous1On (!(P1IN&(1<<7)))
#define InitPous1 P1DIR&=~(1<<7);P1REN|=(1<<7);P1OUT|=(1<<7)

#define Pous2On (!(P2IN&(1<<2)))
#define InitPous2 P2DIR&=~(1<<2);P2REN|=(1<<2);P2OUT|=(1<<2)

void InitCarteBlanche();
void AfficheLedBleues(uint16_t val);
void setupDCO(void); // Fréquence du processeur à  25 MHz

#endif /* PYR_CARTEBLANCHE_H_ */
