• Aucun résultat trouvé

#include "C:\lecteur de disquette pic\lect disk8a.h"

N/A
N/A
Protected

Academic year: 2022

Partager "#include "C:\lecteur de disquette pic\lect disk8a.h""

Copied!
3
0
0

Texte intégral

(1)

#include "C:\lecteur de disquette pic\lect disk8a.h"

//porta en sortie

#define rotation pin_a0 //pin_a0 ligne 0 du porta définie par le nom rotation (pour rotation de la disquette)

#define lecture pin_a4 //pin_a4 ligne 4 du porta définie par le nom lecture (électroaimant collé pour // simulation de lecture)

//portb en entrée

#define trappe pin_b0 //pin_b0 ligne 0 du portb définie par le nom trappe (pour test de la trappe fermée)

#define disquette pin_b1 //pin_b1 ligne 1 du portb définie par le nom disquette (pour test de la présence disquette)

#define inter1 pin_b2 //pin_b2 ligne 2 du portb définie par le nom inter1 (pour test de la position de //l'interrupteur 1)

#define inter2 pin_b3 //pin_b3 ligne 3 du portb définie par le nom inter2 (pour test de la position de //l'interrupteur 2)

#define piste0 pin_b4 //portc en sortie

#define phase1 pin_c0 //pin_c0 ligne 0 du portc définie par le nom phase1 (phase 1 du moteur pas à pas)

#define phase2 pin_c1 //pin_c1 ligne 1 du portc définie par le nom phase2 (phase 2 du moteur pas à pas)

#define phase3 pin_c2 //pin_c2 ligne 2 du portc définie par le nom phase3 (phase 3 du moteur pas à pas) int pas; //définition d'une variable "pas" en tant que nombre ENTIER

void duree_variable (void) //déclaration d'une fonction sans paramètre d'entrée et de sortie { // début de la fonction

int valinter; //définition d'un entier de nom "valinter " (pour valeur produite par les 2 inters) switch(valinter=input_b()&0x0c) // instruction de choix multiple(condition) ici on lit le portb, on masque

//(grâce à un ET logique) tous les bits sauf b2 et b3 correspondant à l'inter1 et l'inter2 { //début de l'instruction

case 0x00:delay_ms(0500);break; //choix 1 : si valinter = 0x00 alors la durée sera égale à 500ms case 0x04:delay_ms(0700);break; //choix 2 : si valinter = 0x00 alors la durée sera égale à 700ms case 0x08:delay_ms(1000);break; //choix 3 : si valinter = 0x00 alors la durée sera égale à 1000ms case 0x0c:delay_ms(2000);break; //choix 4 : si valinter = 0x00 alors la durée sera égale à 2000ms default:delay_ms(1000); //si pas d'égalité avec valinter alors la durée sera égale à 1000ms } // fin de l'instruction

} // fin de la fonction

(2)

void main() //déclaration du programme principal { //début de programme

setup_adc_ports(NO_ANALOGS); //

setup_adc(ADC_OFF); //

setup_spi(FALSE); //

setup_wdt(WDT_OFF); //

setup_timer_0(RTCC_INTERNAL); //

setup_timer_1(T1_DISABLED); //

setup_timer_2(T2_DISABLED,0,1); //

setup_timer_3(T3_DISABLED|T3_DIV_BY_1); //défini par le project wizzard de CCS output_c(0x ); // à completer MPP arret rotor libre

do //début de la structure « répéter … {

output_a(0x ); // à compléter lecture=1(électroaimant décollé) rotation=0 (la disquette ne tourne pas) }

while(!(input(trappe)&input(disquette))); // …jusqu'à »ce que la trappe soit fermé =1 & la disquette soit présente =1 output_bit( ); // à compléter la sortie rotation=1 (la disquette tourne)

duree_variable(); //pendant la durée choisit par les inters 1 et 2

while(input(piste0)) //tant que la tête de lecture n'a pas atteint la piste zéro faire recul tête de lecture {

if(input(piste0)) //si la tête de lecture n'a pas atteint la piste zéro alors {

output_c(0b00000010); //phase1 et phase3 alimentées duree_variable();

}

if(input(piste0)) {

output_c(0b00000001); //phase2 et phase3 alimentées duree_variable();

}

(3)

if(input(piste0)) {

output_c(0b00000100); //phase1 et phase2 alimentées duree_variable();

} }

for(pas=0;pas<15;pas++) //pour indice allant de 0 à 4 faire avance tête de lecture {

………. // à compléter phase2 et phase3 alimentées duree_variable();

……… // à compléter phase1 et phase3 alimentées duree_variable();

……….. // à compléter phase1 et phase2 alimentées duree_variable();

}

……….. // à compléter électroaimant collé simule une lecture+temporisation

delay_ms(2000);

……….. // à compléter électroaimant décollé fin de lecture et fin de rotation de la disquette ………. // à compléter MPP arret rotor libre+ arrêt rotation disquette

} //fin de la boucle sans fin

Références

Documents relatifs

Il ne fait aucun doute que les lions puisent leur force dans la structure sociale de leur clan.. homme gonfle territoire faible

Son ……… est plus clair que celui du tigre du Bengale et sa tête plus massive.. C'est la sous- espèce la

Grâce à elles, il peut agripper sa proie, transpercer les peaux les plus dures et immobiliser l’animal avant de lui porter la morsure fatale.. Si le tigre parvient

Lorsqu’il est à l’affût, le tigre doit souvent patrouiller pendant des heures avant qu’une proie se présente.. Patient, il se dissimule, tous ses sens

Beaucoup de gens sont étonnés d'apprendre qu'ils sont très habiles et que ce sont des nageurs relativement rapides; en fait les éléphants actuels!. font partie

Il est capable de descendre jusqu’à 1200 mètres de profondeur mais il ne peut pas rester longtemps sous l’eau car il doit remonter à la surface pour respirer.. Un

Il est capable de descendre jusqu’à 1200 mètres de profondeur mais il ne peut pas rester longtemps sous l’eau car il doit remonter à la surface pour respirer.. Un dauphin

[r]