summaryrefslogtreecommitdiff
path: root/n/es-2006/src/barillet.c
diff options
context:
space:
mode:
Diffstat (limited to 'n/es-2006/src/barillet.c')
-rw-r--r--n/es-2006/src/barillet.c52
1 files changed, 32 insertions, 20 deletions
diff --git a/n/es-2006/src/barillet.c b/n/es-2006/src/barillet.c
index 474d3be..420c2f9 100644
--- a/n/es-2006/src/barillet.c
+++ b/n/es-2006/src/barillet.c
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * }}} */
+ * }}} */
#include "barillet.h"
#include "modules/utils/utils.h"
@@ -36,8 +36,8 @@
SIG_INTERRUPT7 pour la fourche montee de balle arriere
SIG_INTERRUPT6 pour la fourche montee de balle avant
- SIG_INTERRUPT5 pour la fourche barillet 1 => celle pres de la carte de puissance
- SIG_INTERRUPT4 pour la fourche barillet 2 => celle pres de la carte de es-2006
+ SIG_INTERRUPT5 pour la fourche barillet 2 => celle pres de la carte de puissance
+ SIG_INTERRUPT4 pour la fourche barillet 1 => celle pres de la carte de es-2006
*/
@@ -56,7 +56,7 @@
#define VITESSE_TURB_MAX_ 0x0333
/* vitesse de rotation minimale des turbines */
-#define VITESSE_TURB_MIN_ 0xA0 /* XXX a etalonner */
+#define VITESSE_TURB_MIN_ 0x0100
/* delai d'une Ás pour la carte puissance */
#define DELAY_ 1
@@ -196,13 +196,14 @@ void init_2_barillet(void)
* ******************************/
/* demande de rotation */
-void rotation( uint8_t pos_fin )
+void
+rotation (uint8_t pos_fin)
{
+ if (etat_en_cours_ == STAND_BY_)
+ {
pos_a_aller_ = pos_fin;
- if ( etat_en_cours_ == STAND_BY_ )
- {
- etat_en_cours_ = ROTATION;
- }
+ etat_en_cours_ = ROTATION;
+ }
}
/* demande d'extraction */
void extraction ( void )
@@ -327,7 +328,6 @@ void rotation_barillet(void)
void pos_bar(void)
{
uint8_t pos_conc_;
-// uint8_t pos_temp_;
// proto_send0('Z'); //debug interrupt
@@ -359,18 +359,21 @@ void pos_bar(void)
default :
break;
}
+ pos_prec_ = pos_temp_;
- if ( pos_actuel_ == pos_lenteur_ )
- {
+ if ( etat_en_cours_ == ROTATION_EN_COURS )
+ {
+ if ( pos_actuel_ == pos_lenteur_ )
+ {
OCR1A = VITESSE_BAR_MIN_;
- }
- else if ( pos_actuel_ == pos_final_ )
- {
+ }
+ else if ( pos_actuel_ == pos_final_ )
+ {
OCR1A = 0;
vitesse_turbine ( 1, VITESSE_TURB_MAX_); /* XXX a changer, il faut attendre que la PC104 nous disent : ok tu peux remettre le ventillo avant a fond, donc ce sera pas a mettre ici*/
etat_en_cours_ = STAND_BY_;
- }
- pos_prec_ = pos_temp_;
+ }
+ }
}
@@ -381,15 +384,24 @@ void vitesse_turbine(uint8_t turbine, uint16_t vitesse)
{
if ( turbine == 1 )
{
- OCR1B = vitesse;
+ if (vitesse > VITESSE_TURB_MAX_)
+ OCR1B = VITESSE_TURB_MAX_;
+ else
+ OCR1B = vitesse;
}
else if ( turbine == 2 )
{
- OCR1C = vitesse;
+ if (vitesse > VITESSE_TURB_MAX_)
+ OCR1C = VITESSE_TURB_MAX_;
+ else
+ OCR1C = vitesse;
}
else if ( turbine == 3 ) // moteur barillet
{
- OCR1A = vitesse;
+ if (vitesse > VITESSE_BAR_MAX_)
+ OCR1A = VITESSE_BAR_MAX_;
+ else
+ OCR1A = vitesse;
}
}
/**** changement de sens ****/