Mini projet LOO

Dependencies:   mbed APDS_9960 mbed-rtos

Dependents:   MoveYourTetris_OK

Home du projet

src/cSPI.cpp

Committer:
Willheisen
Date:
2016-04-24
Revision:
39:1aead50ff166
Parent:
36:f58a566595ad

File content as of revision 39:1aead50ff166:

#include "cSPI.h"
#include "cMatrice.h"

DigitalOut _cs(p14);
SPI _spi(p11,p12, p13);


// CONSTRUCTEURS

cSPI::cSPI()
{
    _freq = 0;
    _mode = 0;
    _bits = 0;
}

// DESTRUCTEUR

cSPI::~cSPI()
{

}
// GETTERS

unsigned int cSPI::getFrequence()
{
    return _freq;
}

unsigned int cSPI::getMode()
{
    return _mode;
}

unsigned char cSPI::getBits()
{
    return _bits;
}

// SETTERS

void cSPI::setFrequence(unsigned int freq)
{
    _freq = freq;
}

void cSPI::setMode(unsigned int mode)
{
    _mode = mode;
}

void cSPI::setBits(unsigned char bits)
{
    _bits = bits;
}

//Méthode d'initialisation de la liaison SPI
//Entrées: fréquence: valeur de la fréquence de la liaison
//Sorties: aucune.
void cSPI::initSPI(unsigned int frequence)
{
    _cs = 0;
    wait_ms(1);
    _spi.frequency(frequence);
    wait_ms(1);
    _cs = 1;
}

//Méthode de rafraîchissemnt des matrices
//Entrées: mat: matrice à afficher
//Sorties: aucune.
void cSPI::envoyerMatrice(cMatrice & mat)
{
    Serial pc(USBTX, USBRX);
    _cs = 0;
    wait_ms(1);
    //On rafraîchit la matrice la plus éloignée du Mbed
    for(unsigned char i = 0; i < mat.getCol(); i++) {
        for(unsigned char j = 0; j < mat.getLig()/2; j ++) {
            _spi.write(mat.getValTab(i, j));
        }
    }
    //Puis la seconde
    for(unsigned char i = 0; i < mat.getCol(); i++) {
        for(unsigned char j = mat.getLig()/2; j < mat.getLig(); j ++) {
            _spi.write(mat.getValTab(i, j));
        }
    }
    wait_ms(1);
    _cs = 1;
}

//Méthode de configuration du nombre de matrices de LEDs en DaisyChain
//Entrées: nb: entier qui correspond au nombre de matrices
//Sorties: aucune.
void cSPI::setNbMatrice(unsigned int nb)
{
    _cs = 0;
    wait_ms(1);
    _spi.write('%');
    _spi.write(nb);
    wait_ms(1);
    _cs = 1;
}