/* 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; }
// ----------------------------------------------------------------------------- INLINE void vMBLedErrSet (void) { #ifdef MB_SERIAL_LEDERR vLedSet (MB_SERIAL_LEDERR); #endif }
/* 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; }
// ----------------------------------------------------------------------------- INLINE void vMBLedComSet (void) { #if defined(MB_SERIAL_LEDCOM) && defined(MB_SERIAL_LEDCOM_DELAY) vLedSet (MB_SERIAL_LEDCOM); vTaskStart (xMBLedComTimer); #endif }
// ------------------------------------------------------------------------------ static void vAssert (bool test) { if (test == false) { for (;;) { vLedSet (LED_LED1); delay_ms (50); vLedClear (LED_LED1); delay_ms (150); } } }
/* ----------------------------------------------------------------------------- * 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); } } }
// ------------------------------------------------------------------------------ static void vAssert (bool test) { if (test == false) { for (;;) { vLedSet (ERROR_LED); delay_ms (50); vLedClear (ERROR_LED); delay_ms (500); } } }
/* 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; }
/* ----------------------------------------------------------------------------- * 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 }
/* 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; }
void vLed2Set(const uint8_t value) { vLedSet(hardLED2_PORT, hardLED2_PIN, value); }