From 4f4b8796d95cdd5e3ba406fe6a08123d17c2a0f5 Mon Sep 17 00:00:00 2001 From: dalmais Date: Sat, 23 Apr 2005 21:17:41 +0000 Subject: fonction tourelle + pont + ascenseur(en cours mais operationnel) --- n/es/src/ascenseur.c | 55 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 22 deletions(-) (limited to 'n/es/src/ascenseur.c') diff --git a/n/es/src/ascenseur.c b/n/es/src/ascenseur.c index 24538be..f540474 100644 --- a/n/es/src/ascenseur.c +++ b/n/es/src/ascenseur.c @@ -21,58 +21,69 @@ * Web: http://perso.efrei.fr/~dalmais * Email: * }}} */ - #include "ascenseur.h" +#include "avr/io.h" + + +extern uint8_t vitesse_ascenseur_m; +extern uint8_t vitesse_ascenseur_d; +extern uint8_t vitesse_montee_max; +extern uint8_t vitesse_descente_max; +extern uint8_t accel_montee; +extern uint8_t accel_descente; +#define TC_STOP 0x00 +#define TC_GO 0x1f /* mode CTC | OC2 | prescaler = 128. */ /* +AutoDec */ /* -AutoDec */ -extern uint8_t clk ; // clock de la machine d'état. -uint8_t sens_ascenseur = 0; - void ascenseur_init() { - sens_ascenseur = 0; - TCCR2 = 0x0C ; // mode CTC | pas de OC2 | prescaler = 128 - - + TCCR2 = TC_STOP; + vitesse_ascenseur_m = 0xF0; + vitesse_ascenseur_d = 0xF0; + vitesse_montee_max = 0x20; + vitesse_descente_max = 0x32; + accel_montee = 3; + accel_descente = 3; } void asc_haut(uint8_t valeur) { - TCNT2 = valeur; - sens_ascenseur = MONTE; - + TCCR2 = TC_GO; + OCR2 = valeur; + PORTB |= _BV(0); // sens + PORTD |= _BV(6); // on enable } void asc_bas(uint8_t valeur) { - TCNT2 = valeur; - sens_ascenseur = DESCEND; - + TCCR2 = TC_GO; + OCR2 = valeur; + PORTB &= ~_BV(0); + PORTD |= _BV(6); } void asc_stable(uint8_t valeur) { - TCNT2 = valeur; - sens_ascenseur = MONTE; - + TCCR2 = TC_STOP; + PORTB |= _BV(0); + PORTD |= _BV(6); } - uint8_t capteur_bas() { -return (PORTA & _BV(CAPTEUR_BAS)) ; + return PINA & _BV(CAPTEUR_BAS); } uint8_t capteur_haut() { -return (PORTA & _BV(CAPTEUR_HAUT)) ; + return PINA & _BV(CAPTEUR_HAUT); } - uint8_t capteur_milieu() { -return (PORTA & _BV(CAPTEUR_MILIEU)) ; + return PINA & _BV(CAPTEUR_MILIEU); } + -- cgit v1.2.3