コード例 #1
0
ファイル: test_log.c プロジェクト: epsilonrt/avrio
/* main ===================================================================== */
int
main (void) {
  static volatile int i;

  vLedInit();
  FILE * tc = xFileOpen (PORT, O_RDWR | O_NONBLOCK, &settings);
  stdout = tc;
  stderr = tc;
  stdin = tc;
  sei();

  for (;;) {

    test_count = 1;
    printf_P (PSTR ("\nAvrIO Log test\n"
                    "Press any key to proceed...\n"));
    while (getchar() == EOF)
      ;

    vLogSetMask (LOG_UPTO (LOG_INFO));
    i = iLogMask();
    test (i == LOG_UPTO (LOG_INFO));

    vLog_P (LOG_INFO, flashstr, ++test_count);
    vLog (LOG_INFO, ramstr, ++test_count);

    for (i = LOG_DEBUG; i >= LOG_EMERG; i--) {

      fprintf_P (stderr, PSTR ("\nPriority up to %s\n"), sLogPriorityString(i));
      vLogSetMask (LOG_UPTO (i));
      vLedSet (LED_LED1);
      
      PERROR ("Error %d", test_count++);
      vLedClear (LED_LED1);
      delay_ms (5);
      vLedSet (LED_LED1);
      PWARNING ("Warning %d", test_count++);
      vLedClear (LED_LED1);
      delay_ms (5);
      vLedSet (LED_LED1);
      PNOTICE ("Notice %d", test_count++);
      vLedClear (LED_LED1);
      delay_ms (5);
      vLedSet (LED_LED1);
      PINFO ("Info %d", test_count++);
      vLedClear (LED_LED1);
      PDEBUG ("Debug %d", test_count++);
      PERROR ("Error %d", test_count++);
      PWARNING ("Warning %d", test_count++);
      PNOTICE ("Notice %d", test_count++);
      PINFO ("Info %d", test_count++);
      PDEBUG ("Debug %d", test_count++);
    }

  }
  return 0;
}
コード例 #2
0
ファイル: portserial.c プロジェクト: epsilonrt/avrio
// -----------------------------------------------------------------------------
INLINE void
vMBLedErrSet (void) {

#ifdef MB_SERIAL_LEDERR
  vLedSet (MB_SERIAL_LEDERR);
#endif
}
コード例 #3
0
ファイル: test_wusb_hub.c プロジェクト: epsilonrt/avrio
/* main ===================================================================== */
int
main (void) {

  vLedInit ();
#if defined(AVRIO_DEBUG_STREAM)
  /* Init terminal */
  vSerialInit (TEST_BAUDRATE / 100, SERIAL_DEFAULT + SERIAL_WR);
  stderr = &xSerialPort;
  fputc('\r', stderr);
#endif
  vTwiInit ();
  vAssert(eTwiSetSpeed (400) == TWI_SUCCESS);
  vAssert(iWHubInit (WDEV_RATE_16KBPS, FRAM_SIZE, &xFRAM) == 0);
  vWHubSetStatusFlag (WHUB_AUTOBIND, false);
  // vWSdBaseClear ();

  for (;;) {

    vLedSet (LOOP_LED);
    pxMsg = pxWHubLoop ();
    vLedClear (LOOP_LED);
  }

  return 0;
}
コード例 #4
0
ファイル: portserial.c プロジェクト: epsilonrt/avrio
// -----------------------------------------------------------------------------
INLINE void
vMBLedComSet (void) {

#if defined(MB_SERIAL_LEDCOM) && defined(MB_SERIAL_LEDCOM_DELAY)
  vLedSet (MB_SERIAL_LEDCOM);
  vTaskStart (xMBLedComTimer);
#endif
}
コード例 #5
0
ファイル: gifam_test.c プロジェクト: epsilonrt/gxPL
// ------------------------------------------------------------------------------
static void
vAssert (bool test) {

  if (test == false) {

    for (;;) {

      vLedSet (LED_LED1);
      delay_ms (50);
      vLedClear (LED_LED1);
      delay_ms (150);
    }
  }
}
コード例 #6
0
ファイル: test_serial_sw.c プロジェクト: epsilonrt/avrio
/* -----------------------------------------------------------------------------
 * Vérifie que la condition passée est vraie, sinon fait clignoter rapidement
 * la led 1 à l'infinie
 */
void
vLedAssert (int i) {

  if (!i) {

    for (;;) {

      vLedSet (LED_LED1);
      delay_ms (5);
      vLedClear (LED_LED1);
      delay_ms (25);
    }
  }
}
コード例 #7
0
ファイル: test_wusb_hub.c プロジェクト: epsilonrt/avrio
// ------------------------------------------------------------------------------
static void
vAssert (bool test) {

  if (test == false) {

     for (;;) {

      vLedSet (ERROR_LED);
      delay_ms (50);
      vLedClear (ERROR_LED);
      delay_ms (500);
    }
  }
}
コード例 #8
0
ファイル: demo_blyss_rx.c プロジェクト: epsilonrt/avrio
/* main ===================================================================== */
int
main (void) {
  // Trame reçue et trame précédente
  xBlyssFrame f, fprev;

  vLedInit();

  // Init. des trames
  vBlyssFrameInit (&f, NULL);
  vBlyssFrameInit (&fprev, NULL);
  // Init. du module Blyss
  vBlyssInit ();
  sei(); // le module Blyss utilise les interruptions

  for (;;) {

    if (bBlyssReceive (&f)) {

      // Une trame a été reçue
      if (!bBlyssFrameMatch (&f, &fprev)) { // c'est une nouvelle trame...

        uint8_t c = ucBlyssFrameChannel (&f);

        if ( (c == MYCHAN) || (c == BLYSS_BROADCAST)) {
          
          // la trame correspond à notre canal (ou à l'appel général)
          if (bBlyssFrameState (&f)) {
            
            vLedSet (LED_LED1);
          }
          else {

            vLedClear (LED_LED1);
          }
        }
        // On copie la trame dans la précédente
        vBlyssFrameCopy (&fprev, &f);
      }
    }
  }
  return 0;
}
コード例 #9
0
ファイル: test_serial_sw.c プロジェクト: epsilonrt/avrio
/* -----------------------------------------------------------------------------
 * Envoi de l'alphabet A -> Z
 */
void
vTestAlphabet (void) {
#ifdef TEST_ALPHABET
  uint8_t ucCount = 32;
  char cChar;

  vSerialSwPutChar ('\n');
  vLedSet (LED_LED1);
  while (ucCount--) {

    cChar = 'A';
    do {

      vSerialSwPutChar (cChar);
    }
    while (cChar++ < 'Z');

    vSerialSwPutChar ('\n');
  }
  vLedClear (LED_LED1);
#endif
}
コード例 #10
0
ファイル: demo_servo.c プロジェクト: epsilonrt/avrio
/* main ===================================================================== */
int
main (void) {
  uint16_t usPulse = DEFAULT_PULSE;

  vLedInit ();
  vButInit ();
  vServoInit (); // Toutes les voies sont validées

  // Règlage des largeurs d'impulsion par défaut
  vLedSet (LED_LED1);
  for (uint8_t ucServo = 0; ucServo < ucServoChannels(); ucServo++) {

    vServoSetPulse (ucServo, DEFAULT_PULSE);
  }

  for (;;) {

    if (xButGet (BUTTON_BUTTON1)) {
      // BP1 appuyé
      while (xButGet (BUTTON_BUTTON1))
        ; // Attente relâchement BP1
      usPulse += STEP_PULSE; // Augmente la largeur d'un pas
      // Si la largeur est trop grande, on revient au min
      if (usPulse > MAX_PULSE) {
        usPulse = MIN_PULSE;
      }
      // On envoie le nouveau réglage aux servos
      for (uint8_t ucServo = 0; ucServo < ucServoChannels(); ucServo++) {

        vServoSetPulse (ucServo, usPulse);
      }
      // On bascule l'état de la LED1
      vLedToggle (LED_LED1);
    }
  }
  return 0;
}
コード例 #11
0
ファイル: leds.c プロジェクト: jbalcerz/eMPL_simplification_A
void vLed2Set(const uint8_t value)
{
    vLedSet(hardLED2_PORT, hardLED2_PIN, value);
}