/*********************************************This function was only used in debugging *********************************************/ void Write16BitToDisplay(uint16_t given) { // 0000 0000 0000 0000 : 1st 2nd 3rd 4th uint16_t maskedFirst4 = 0xF000 & given; // mask given so only 4 most significant bits left uint8_t first = maskedFirst4 >> 12; // shift 4 most significant bits all the way to the right uint16_t maskedSecond4 = 0x0F00 & given; uint8_t second = maskedSecond4 >> 8; uint16_t maskedThird4 = 0x00F0 & given; uint8_t third = maskedThird4 >> 4; uint16_t maskedFourth4 = 0x000F & given; uint8_t fourth = maskedFourth4; WriteDisplay(1,0,HexToDisplayCode(first)); // Write first WriteDisplay(1,0,HexToDisplayCode(second)); // Write second WriteDisplay(1,0,HexToDisplayCode(third)); // Write third WriteDisplay(1,0,HexToDisplayCode(fourth)); // Write fourth }
//Function: Task 1 function (handle 3 7-segment displays) //Params: nothing //Return: nothing void Task1(void) { if (RecentDisplay > 2) RecentDisplay = 0; WriteDisplay(DisplayValue[RecentDisplay], RecentDisplay); RecentDisplay++; }
/*******************************************INPUT 16BIT NUMBER AND DISPLAYS AS DECIMAL ON DISPLAY*******************************************/ void Write16BitToDisplayAsDec(uint16_t given) { char buffer[5]; snprintf(buffer, 5, "%d", given); // Convert given into a decimal string for (int i = 0; i < 5; i++) { if (buffer[i] == '0') { WriteDisplay(1,0,HexToDisplayCode(0x00)); } if (buffer[i] == '1') { WriteDisplay(1,0,HexToDisplayCode(0x01)); } if (buffer[i] == '2') { WriteDisplay(1,0,HexToDisplayCode(0x02)); } if (buffer[i] == '3') { WriteDisplay(1,0,HexToDisplayCode(0x03)); } if (buffer[i] == '4') { WriteDisplay(1,0,HexToDisplayCode(0x04)); } if (buffer[i] == '5') { WriteDisplay(1,0,HexToDisplayCode(0x05)); } if (buffer[i] == '6') { WriteDisplay(1,0,HexToDisplayCode(0x06)); } if (buffer[i] == '7') { WriteDisplay(1,0,HexToDisplayCode(0x07)); } if (buffer[i] == '8') { WriteDisplay(1,0,HexToDisplayCode(0x08)); } if (buffer[i] == '9') { WriteDisplay(1,0,HexToDisplayCode(0x09)); } } }
/*******************************************CLEAR DISPLAY AND BRING CURSOR HOME*******************************************/ void ClearDisplay(){ WriteDisplay(0,0,0b00000001); // Clear Display WriteDisplay(0,0,0b00000010); // Return Home }
/*******************************************INITIAL DISPLAY SETUP*******************************************/ void SetDisplay(){ WriteDisplay(0,0,0b00111100); // Function Set WriteDisplay(0,0,0b00001100); // Display ON Cursor OFF }