void main(){ unsigned int out = 69; char len = get_num_len(out); char str[len] = ""; // must char zz; for(zz = 0; zz < len; zz = zz + 1){ str[zz] = (48+nthdigit(out,len-1-zz)); } //strcat(str,". Zahl"); // TESTING SOON while(1){ } }
void displayMulti(uint32_t num,char special){ //Pin 0 is actually 10^5 place for(int i=0;i<5;i++){ if(i==0 && special){ if(special == 'H'){ displayNum(16); } else if(special == 'P'){ displayNum(17); } } else { displayNum(nthdigit(num,4-i)); } PORTD |= (1<<i); _delay_ms(1); PORTD &= ~(1<<i); displayClear(); } }
void displayMultiF(float numF){ //Pin 0 is actually 10^5 place //Round to 2 decimals uint32_t num = (uint32_t)(numF*100+.5); unsigned int decimal = 1; if(num >= 100000){ num = num/100; decimal = 0; } for(int i=0;i<5;i++){ displayNum(nthdigit(num,4-i)); if(i==2 && decimal == 1){ DDRC |= (1<<7); } PORTD |= (1<<i); _delay_ms(1); PORTD &= ~(1<<i); displayClear(); } }
void UpdateBluetoothValues(void) { // set the date and time while (!RTCC_TimeGet(&Time)) { }; DateTimeResponse[9] = (unsigned char) nthdigit(Time.tm_year, 1); DateTimeResponse[10] = (unsigned char) nthdigit(Time.tm_year, 0); DateTimeResponse[11] = (unsigned char) nthdigit(Time.tm_mon, 1); DateTimeResponse[12] = (unsigned char) nthdigit(Time.tm_mon, 0); DateTimeResponse[13] = (unsigned char) nthdigit(Time.tm_mday, 1); DateTimeResponse[14] = (unsigned char) nthdigit(Time.tm_mday, 0); DateTimeResponse[15] = (unsigned char) nthdigit(Time.tm_hour, 1); DateTimeResponse[16] = (unsigned char) nthdigit(Time.tm_hour, 0); DateTimeResponse[17] = (unsigned char) nthdigit(Time.tm_min, 1); DateTimeResponse[18] = (unsigned char) nthdigit(Time.tm_min, 0); DateTimeResponse[19] = (unsigned char) nthdigit(Time.tm_sec, 1); DateTimeResponse[20] = (unsigned char) nthdigit(Time.tm_sec, 0); //LastDate[x] = DateTimeResponse[x + 9]; UART1_WriteString((unsigned char *) DateTimeResponse); __delay_ms(1); // get the current power usage from the ADC if (CurrentPowerUsage > 0) { tempDouble = CurrentPowerUsage * 1000; tempLong = (long) tempDouble; } else { tempLong = 0; } PowerUsageResponse[9] = nthdigit(tempLong, 7); PowerUsageResponse[10] = nthdigit(tempLong, 6); PowerUsageResponse[11] = nthdigit(tempLong, 5); PowerUsageResponse[12] = nthdigit(tempLong, 4); PowerUsageResponse[13] = nthdigit(tempLong, 3); PowerUsageResponse[14] = nthdigit(tempLong, 2); PowerUsageResponse[15] = nthdigit(tempLong, 1); PowerUsageResponse[16] = nthdigit(tempLong, 0); UART1_WriteString(PowerUsageResponse); __delay_ms(1); // check to see if the charger is currently active if (Power_Enable_GetValue() == 1) { UART1_WriteString((unsigned char *) "SHW,001C,01"); } else { UART1_WriteString((unsigned char *) "SHW,001C,00"); } __delay_ms(1); // Return the current power down voltage if (PowerDownVoltage > 0) { tempDouble = PowerDownVoltage * 1000; tempLong = (long) tempDouble; } else { tempLong = 0; } PowerDownVoltageResponse[9] = nthdigit(tempLong, 7); PowerDownVoltageResponse[10] = nthdigit(tempLong, 6); PowerDownVoltageResponse[11] = nthdigit(tempLong, 5); PowerDownVoltageResponse[12] = nthdigit(tempLong, 4); PowerDownVoltageResponse[13] = nthdigit(tempLong, 3); PowerDownVoltageResponse[14] = nthdigit(tempLong, 2); PowerDownVoltageResponse[15] = nthdigit(tempLong, 1); PowerDownVoltageResponse[16] = nthdigit(tempLong, 0); UART1_WriteString(PowerDownVoltageResponse); __delay_ms(1); // Power Up Voltage - float - 8 bytes // Return the current power up voltage if (PowerDownVoltage > 0) { tempDouble = PowerUpVoltage * 1000; tempLong = (long) tempDouble; } else { tempLong = 0; } PowerUpVoltageResponse[9] = nthdigit(tempLong, 7); PowerUpVoltageResponse[10] = nthdigit(tempLong, 6); PowerUpVoltageResponse[11] = nthdigit(tempLong, 5); PowerUpVoltageResponse[12] = nthdigit(tempLong, 4); PowerUpVoltageResponse[13] = nthdigit(tempLong, 3); PowerUpVoltageResponse[14] = nthdigit(tempLong, 2); PowerUpVoltageResponse[15] = nthdigit(tempLong, 1); PowerUpVoltageResponse[16] = nthdigit(tempLong, 0); UART1_WriteString(PowerUpVoltageResponse); __delay_ms(1); // Charging Device VID/PID - uint32 - 4 bytes // return the VID and PID of the connected or last USB device VIDPIDResponse[9] = nthdigit(VID, 4); VIDPIDResponse[10] = nthdigit(VID, 3); VIDPIDResponse[11] = nthdigit(VID, 2); VIDPIDResponse[12] = nthdigit(VID, 1); VIDPIDResponse[13] = nthdigit(VID, 0); VIDPIDResponse[14] = nthdigit(PID, 4); VIDPIDResponse[15] = nthdigit(PID, 3); VIDPIDResponse[16] = nthdigit(PID, 2); VIDPIDResponse[17] = nthdigit(PID, 1); VIDPIDResponse[18] = nthdigit(PID, 0); UART1_WriteString((unsigned char *) VIDPIDResponse); __delay_ms(1); // Charging Device Start Time YYMMDDHHmmSS - 6 bytes // return the date and time of the charging start time StartTimeResponse[9] = (unsigned char) nthdigit(startTime.tm_year, 1); StartTimeResponse[10] = (unsigned char) nthdigit(startTime.tm_year, 0); StartTimeResponse[11] = (unsigned char) nthdigit(startTime.tm_mon, 1); StartTimeResponse[12] = (unsigned char) nthdigit(startTime.tm_mon, 0); StartTimeResponse[13] = (unsigned char) nthdigit(startTime.tm_mday, 1); StartTimeResponse[14] = (unsigned char) nthdigit(startTime.tm_mday, 0); StartTimeResponse[15] = (unsigned char) nthdigit(startTime.tm_hour, 1); StartTimeResponse[16] = (unsigned char) nthdigit(startTime.tm_hour, 0); StartTimeResponse[17] = (unsigned char) nthdigit(startTime.tm_min, 1); StartTimeResponse[18] = (unsigned char) nthdigit(startTime.tm_min, 0); StartTimeResponse[19] = (unsigned char) nthdigit(startTime.tm_sec, 1); StartTimeResponse[20] = (unsigned char) nthdigit(startTime.tm_sec, 0); UART1_WriteString((unsigned char *) StartTimeResponse); __delay_ms(1); // Charging Device Total Charge (Wh) - float - 7 bytes // return the total charge power for the current or last connected device if (TotalCharge > 0) { tempDouble = TotalCharge * 1000; tempLong = (long) tempDouble; } else { tempLong = 0; } TotalChargeResponse[9] = nthdigit(tempLong, 7); TotalChargeResponse[10] = nthdigit(tempLong, 6); TotalChargeResponse[11] = nthdigit(tempLong, 5); TotalChargeResponse[12] = nthdigit(tempLong, 4); TotalChargeResponse[13] = nthdigit(tempLong, 3); TotalChargeResponse[14] = nthdigit(tempLong, 2); TotalChargeResponse[15] = nthdigit(tempLong, 1); TotalChargeResponse[16] = nthdigit(tempLong, 0); UART1_WriteString(TotalChargeResponse); __delay_ms(1); // Charging Device End Time YYMMDDHHmmSS - 6 bytes // return the date and time of the charging end time // return now if the device is still charging EndTimeResponse[9] = (unsigned char) nthdigit(endTime.tm_year, 1); EndTimeResponse[10] = (unsigned char) nthdigit(endTime.tm_year, 0); EndTimeResponse[11] = (unsigned char) nthdigit(endTime.tm_mon, 1); EndTimeResponse[12] = (unsigned char) nthdigit(endTime.tm_mon, 0); EndTimeResponse[13] = (unsigned char) nthdigit(endTime.tm_mday, 1); EndTimeResponse[14] = (unsigned char) nthdigit(endTime.tm_mday, 0); EndTimeResponse[15] = (unsigned char) nthdigit(endTime.tm_hour, 1); EndTimeResponse[16] = (unsigned char) nthdigit(endTime.tm_hour, 0); EndTimeResponse[17] = (unsigned char) nthdigit(endTime.tm_min, 1); EndTimeResponse[18] = (unsigned char) nthdigit(endTime.tm_min, 0); EndTimeResponse[19] = (unsigned char) nthdigit(endTime.tm_sec, 1); EndTimeResponse[20] = (unsigned char) nthdigit(endTime.tm_sec, 0); UART1_WriteString((unsigned char *) EndTimeResponse); firstRun = false; }