//============================================================== // Nom Programme : sumo_int.c // Date : 10-06-2004 // Version : 1.1 // Auteur : F. Giamarchi // // Description : Fichier pour les interruptions // //============================================================== // Initialisation du système //============================================================== void INIT_Interrup() { setup_counters(rtcc_internal,rtcc_div_4); enable_interrupts(int_rtcc); enable_interrupts(global); set_rtcc(0x00); } //============================================================== // Sous programme d'interruption // 1. réinitialise rtcc pour la prochaine interruption // 2. incrémente les compteurs temps // 3. traitement MLI des deux moteurs // 4. Piezo // 5. diverses lectures // #int_rtcc millisec_int() { //====================================== // réinitialise rtcc set_rtcc(14); //====================================== // compteur temps Time++; msec++; if (msec == 1000) { msec = 0; sec++; } //====================================== // MLI moteurs if (MLI == 10) { MLI = 0; } if (Mot_Dr_mli) { if (MLI_Dr > MLI) Vit_Dr = 1; else Vit_Dr = 0; } if (Mot_Ga_mli) { if (MLI_Ga > MLI) Vit_Ga = 1; else Vit_Ga = 1; } MLI++; //======================================= // Génération d'un son if (Piezo_On) if (Piezo_Etat) { Piezo_Etat = 0; Piezo = 0; } else { Piezo_Etat = 1; Piezo = 1; } //======================================= // Mesures Infrarouges Salve_Ir(); } //==============================================================