/**
 * Ajoute un caractère à la file de transmission.
 * Si la file de transmission est pleine, la méthode attend qu'il
 * y ait de la place.
 * @param data Le caractère à placer.
 */
void uartPutch(char data) {
    if (uartEtat == UART_TRANSMISSION_EN_REPOS) {
        uartEtat = UART_TRANSMISSION_EN_COURS;
        TXREG1 = data;
        PIE1bits.TX1IE = 1;
    } else {
        while (fileEstPleine(&fileTransmission));
        fileEnfile(&fileTransmission, data);            
    }
}
Beispiel #2
0
void testDebordePuisRecupereLesCaracteres() {
    fileReinitialise();

    char c = 1;
    while(!fileEstPleine()) {
        fileEnfile(c++);
    }

    testeEgaliteEntiers("FDB001", fileDefile(), 1);
    testeEgaliteEntiers("FDB002", fileDefile(), 2);
    
    while(!fileEstVide()) {
        c = fileDefile();
    }
    fileEnfile(1);      // Ces caractères sont ignorés...
    fileEnfile(1);      // ... car la file est pleine.

    testeEgaliteEntiers("FDB003", c, FILE_TAILLE);
}