Question: C Language: Write a diagnostic code for the following code. And please tell me what it will check for. This code does the following: its
C Language: Write a diagnostic code for the following code. And please tell me what it will check for. This code does the following: its using 2 7 Segment LEDs
Hit Switch
Count Up
Hit Switch
Display Time
Hit Switch
Count Down from 99
Hit Switch
Display time
Hit Switch
Turn off display
The diagonistic code should check: All segement of the LEDs and or buttons to make sure they work fine.
#include #include #include #include #include "LabJackUD.h" #include "LJUD_DynamicLinking.h"
void ErrorHandler (LJ_ERROR ljError, long lngLineNumber) { char err[255]; if (ljError != LJE_NOERROR) { ErrorToString(ljError, err); printf("Error # %ld: %s ", ljError, err); printf("Source line number = %ld ", lngLineNumber); if(ljError > LJE_MIN_GROUP_ERROR) { getchar(); exit(0); // Quit if serious error } } }
const int numbers[10][1] = { // 1: segment lit, 0: segment unlit // a b c d e f g {64}, //0 1, 1, 1, 1, 1, 1, 0 1000000 {121}, //1 0, 1, 1, 0, 0, 0, 0 1111001 {36}, //2 1, 1, 0, 1, 1, 0, 1 0100100 {48}, //3 1, 1, 1, 1, 0, 0, 1 0110000 {25}, //4 0, 1, 1, 0, 0, 1, 1 0011001 {18}, //5 1, 0, 1, 1, 0, 1, 1 0010010 {2}, //6 1, 0, 1, 1, 1, 1, 1 0000010 {120}, //7 1, 1, 1, 0, 0, 0, 0 1111000 {0}, //8 1, 1, 1, 1, 1, 1, 1 0000000 {24} //9 1, 1, 1, 0, 0, 1, 1 0011000 };
int i=0; int j=0; int k=0; int l=0; int m=0; double ReadVal=1; main() { LJ_ERROR ljError; // LabJack error code LJ_HANDLE ljHandle = 0; // ID# assigned to the opened LabJack LoadLabJackUD(); // Load the LabJack DLL
// Open the first found LabJack U3 ljError = OpenLabJack (LJ_dtU3, LJ_ctUSB, "1", 1, &ljHandle); ErrorHandler(ljError, __LINE__);
// Set all pin assignments to the factory default condition ljError = ePut(ljHandle, LJ_ioPIN_CONFIGURATION_RESET, 0, 0, 0); ErrorHandler(ljError, __LINE__); { while (ReadVal==1) { ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); }
while (ReadVal==0) { ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); }
while (m < 3300 && ReadVal==1) { i=k/330; j=l/33;
if (j==10) l=0;
ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7); Sleep(1); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7); Sleep(1); k++; l++; m++; }
while (ReadVal==0) { ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); } while (ReadVal==1) { ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7); Sleep(12); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7); Sleep(12);
}
while (ReadVal==0) { ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); }
m=3300; k=3300; l=330; while (ReadVal==1 && m > 0) {
i=k/330; j=l/33;
if (l==0) l=330;
ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7); Sleep(1); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7); Sleep(1); k--; l--; m--; }
while (ReadVal==0) { ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); }
while (ReadVal==1) { ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7); Sleep(12); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7); Sleep(12); }
ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0); ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0); return 0; } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
