Цитата
что тут лишнее, чего не хватает
По оформлению - main() лучше поставить последним, тогда не потребуется описывать прототипы и ее всегда будет просто найти - всегда в конце файла.
функция CalcVolt
1. не похожа на функцию написанную на языке C (переменные объявляются где попало и как попало это стиль C++);
2. из нее нет выхода
3. она содержит ошибку....
Ошибка вот в чем:
по прототипу
unsigned char * CalcVolt(unsigned int Volt);
фукнция должна возвращать указатель на какой-то массив где будет строка с "вольтами" или "валетами" как удобней. Никто так не делает, т.к. никто не хочет задумываться над вопросами - а где взять этот массив? и кто будет заботиться об освобождении памяти? Дык вот, чтобы об этом не задумываться, лучше поступить также как поступлено в sprintf - передать в качестве первого параметра указатель на буфер, куда можно класть строку-результат. Сама же функция пусть возвращает код ошибки или вообще ничего не возвращает:
Код
void CalcVolt( unsigned char * buf, unsigned int Volt)
{
float V = (float)volt * 3.3/1024;
sprintf( buf ,"Volt %0.2f V",V);
}
4. Название функции не соответвует тому что она делает. Название говорит, что фукнция __считает__ вольты, если она их считает то результатом должно быть число. А если функция делает то, что у вас делает, то ей больше подходит название ConvertAdcValueToVoltStr. И входные параметры желательно называть правильно:
void ConvertAdcValueToVoltStr( unsigned char * destVoltStr, unsigned int AdcValue);
Цитата
можно упрастить сию задачу?
По алгоритму решения Вашей задачи думаю никто особо вникать не будет. То что вы привели, и так предельно просто.