Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ___| _) | _) _) ___|
- \___ \ | | | __| | | | __ `__ \ | _ \ __| __ \
- | | | | ( | | | | | | | ( | | | |
- _____/ _| _| _| \___| _| \__,_| _| _| _| \____| \___/ _| .__/
- _|
- Code source libre de droit. Si vous utilisez mon code, merci à vous d'en préciser la source.
- Date : 11/11/2011
- Auteur : Silicium Corp
- */
- #ifndef STACK_HEADER
- #define STACK_HEADER //Evite les inclusions multiples
- #include <WProgram.h> //Permet au compillateur Arduino de bien faire son travail quand on taf avec nos propres librairies
- #define LENGTH_STACK 64 //Constante pour la taille du tableau utilisé par la stack
- #define FIFO true //Define de lisibilité
- #define LIFO false //Define de lisibilité
- class Stack // /!\ CET OBJET NECESSITE QUE DANS LE SETUP DE LA CARTE ARDUINO SOIT INITIALISE UNE CONNEXION SERIE.
- //SINON, LA FONCTION show() push() et pop() POSSERONT UNE ERREUR A LA COMPILLATION
- {
- private :
- byte LENGTH; //Contient la taille du tableau utilisé par la stack
- byte data; //Correspond à une variable temporaire qui sera copié dans la stack. Si c'est votre propre type, attention à inclure le header dans ce fichier
- byte stack[LENGTH_STACK]; //Correspond au tableau composant le stock de la stack.
- byte nextPush; //Correspond à l'index du tableau qui sera remplis par le prochain push()
- byte nextPop; //Correspond à l'index du tableau qui sera retiré par le prochain pop()
- byte nbElement; //Correspond aux nombres d'element contenu dans la stack
- boolean isFIFO; //Correspond au mode de fonctionnement de la stack
- public:
- Stack(boolean); //Constructeur, attend en parametre le mode de la stack FIFO ou LIFO
- byte getLength(); //Retourne le nombre d'élément que peux contenir la stack (Correspond à la valeur de la constante du #define LENGTH_STACK
- byte* getStack(); //Retourne le pointeur de la premiere position du tableau
- byte getNextPush(); //Retourne l'index du tableau qui sera remplis par le prochain push()
- byte getNbElement(); //Retourne le nombre d'élément dans la stack
- void setFIFOmode(boolean); //Permet de changer le mode de fonctionnement de la stack()
- void push(byte); //Permet de saisir de la data dans la stack
- void init(); //Réinitialise la stack
- byte pop(); //Retourne et retire l'element de la stack à donner en fonction du mode de fonctionnement de la stack
- void show(); //Imprime pas le port serie le contenu de la stack sans modifier les indexs.
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement