Kidule Ascenseur/Initialiser le Hardware
Apparence
Le matériel
[modifier | modifier le wikicode]Le matériel de cet atelier est composé de Kidules produits par Didel.
Les Kidules
[modifier | modifier le wikicode]On trouve la documentation complète ici pour le Kidule 2550 et pour le kidule ascenseur.
Le schéma
[modifier | modifier le wikicode]Le processeur est un PIC 18F2550 dont on trouve le databook ici [1]
Déclaration dans le software pour ce Hardware
[modifier | modifier le wikicode]Sur le Kidule PIC 2550, 3 ports sont utilisables PORTB de 8 bits à droite et PORTA (5 bits) ainsi de PORTC (3 bits) à gauche.
On trouve ci après les déclarations nécessaires pour adresser correctement le hardware: Dans ce fichier, on fait deux choses:
- on donne des noms intelligents aux bits d'entrées / sorties, qui correspondent aux deux Kidules
- on a une fonction setup() qui permet d'initialiser correctement les registres TRISx pour indiquer s'il s'agit d'entrées ou de sorties
- définir des mots parlant pour Allume, Eteint ou Presse plutôt que d’avoir à tout le temps réflechir s'il faut un 1 ou un 0 dans ce cas
HardwareAsc.h
[modifier | modifier le wikicode]#define pic18f2550 1
// ATTENTION: sur le 18F2550, il ne faut pas écrire dans PORTx des bits, mais dans LATx, car
// si on fait plusieurs instructions bit de suite (Read-Modifiy-Write) on a
// des résultats difficiles à comprendre
// cf http://www.microchip.com/forums/tm.aspx?m=421256
// http://www.microchip.com/forums/tm.aspx?m=110258
//déclarations pour le Kidule PIC2550
#define Buzzer LATCbits.LATC7
//déclarations pour le module Ascenseur monté à droite
#define Bouton2eme PORTBbits.RB0
#define Bouton1er PORTBbits.RB1
#define BoutonRez PORTBbits.RB2
#define Switch2eme PORTBbits.RB3
#define Switch1er PORTBbits.RB4
#define SwitchRez PORTBbits.RB5
#define Monter LATBbits.LATB6
#define Descendre LATBbits.LATB7
//déclarations pour le module Dé monté à Gauche
#define Led0 LATAbits.LATA0
#define Led1 LATAbits.LATA1
#define Led2 LATAbits.LATA2
#define Led5 LATAbits.LATA3
#define Led4 LATAbits.LATA5
#define Led3 LATCbits.LATC0
#define Led6 LATCbits.LATC1
#define Poussoir PORTCbits.RC2
//déclaration pour l'usage propre à ce programme
#define LedRez Led0
#define Led1er Led1
#define Led2eme Led2
//déclaration pour rendre plus explicite le code vu que les modules sont en logique actif à 0
#define Presse 0
#define Allume 0
#define Eteint 1
// Mise en route du PIC: configuration des PINs en entrées ou sorties
void setup()
{
PORTA = 0x00;
ADCON1= 0x0f; // désactive les entrées analogiques
CMCON = 0x07;
TRISA = 0b11000000;
PORTA = 0b00111111;
TRISC = 0b00111100;
PORTC = 0b00000011;
TRISB = 0b00111111;
PORTB = 0b00000000;
}
Le mieux, c’est de copier ce bout de programme dans votre programme, pour ne pas avoir à tout déclarer à la main. Pour l'atelier, vous trouverez un fichier hardwareAsc.h déjà présent dans le répertoire.