Aller au contenu

Filament ABS

Messages recommandés

Bonjour,

Vous souhaitez utiliser la commande M42 ou M226 mais ça ne fonctionne pas ? 

C'est normal, marlin bloque certaines pins pour ces fonctions pour vérifier si les pins sont bloquées ou non pour ces fonctions, il vous suffit de vous rendre dans le fichier "pins.h" et d'aller à la ligne où se trouve "#DEFINE SENSITIVE PINS" vous trouverez la liste des pins bloquées pour ces fonctions, il vous suffit donc de mettre en commentaire celle que vous voulez utiliser pour votre commande. 

Pour mieux comprendre le chemin allons dans le fichier "marlin_main.cpp", allons voir pour la commande M226 par exemple :

 

/**
 * M226: Wait until the specified pin reaches the state required (M226 P<pin> S<state>)
 */
inline void gcode_M226() {
  if (parser.seen('P')) {
    const int pin_number = parser.value_int(),
              pin_state = parser.intval('S', -1); // required pin state - default is inverted

    if (WITHIN(pin_state, -1, 1) && pin_number > -1 && !pin_is_protected(pin_number)) {

      int target = LOW;

      stepper.synchronize();

      pinMode(pin_number, INPUT);
      switch (pin_state) {
        case 1:
          target = HIGH;
          break;
        case 0:
          target = LOW;
          break;
        case -1:
          target = !digitalRead(pin_number);
          break;
      }

      while (digitalRead(pin_number) != target) idle();

    } // pin_state -1 0 1 && pin_number > -1
  } // parser.seen('P')
}

 

Ici en gras, nous pouvons voir que l'on cherche avant de lancer cette commande de voir si la pin utilisé n'est pas protégé.

Dans le même fichier nous avons :

/**
 * Sensitive pin test for M42, M226
 */
 static bool pin_is_protected(const int8_t pin) {
  static const int8_t sensitive_pins[] PROGMEM = SENSITIVE_PINS;
  for (uint8_t i = 0; i < COUNT(sensitive_pins); i++)
    if (pin == (int8_t)pgm_read_byte(&sensitive_pins)) return true;
  return false;
}

 

Nous pouvons donc voir que nous avos des protected pins aussi appelé sensitive_pins dans le fichier pins.h qui sont "interdite" pour ces fonctions. Désolé si ce n'est pas clair mais je commence depuis peu à bidouiller au marlin donc je ne peux détailler les morceaux de programme mais la solution fonctionne test approuvé !

Melvin

Partager ce message


Lien à poster
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez poster un message et vous inscrire plus tard. Si vous avez déjà un compte, connectez-vous afin de poster avec.

Invité
Répondre à ce sujet…

×   Vous avez copié du contenu avec formatage.   Supprimer le formatage

  Only 75 emoji are allowed.

×   Votre lien a été automatiquement intégré.   Afficher en tant que lien à la place

×   Le contenu sauvegardé a été restauré.   Effacer l'éditeur

×   You cannot paste images directly. Upload or insert images from URL.


  • Sur cette page :   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...