summaryrefslogtreecommitdiff
path: root/n/es/src/ascenseur.c
diff options
context:
space:
mode:
Diffstat (limited to 'n/es/src/ascenseur.c')
-rw-r--r--n/es/src/ascenseur.c55
1 files changed, 33 insertions, 22 deletions
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: <dalmais@efrei.fr>
* }}} */
-
#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);
}
+