#define buffer_size 30 //размер буфера
char buffer[buffer_size]; //сам буфер
char buffer_count; //количество байт в буфере
void add_to_buffer(char c) //ф-ия добавление байта в буфер
{
buffer[buffer_count]=c; //добавляем
if (buffer_count<buffer_size) //проверям не вылезло ли за размер
buffer_count++; //если нет то увеличиваем
};
char transmit_buffer() //отсылаем буфер
{
char k;
k=0;
while ((buffer_count--)!=0) //цикл отсылки
putchar(buffer[k++]); //непосредственно отправка в ком порт ну или замени на свой UDR + задержка или проверка готовности
};
void main()
{
...... // некий код
add_to_buffer('П');
add_to_buffer('р');
add_to_buffer('и');
add_to_buffer('в');
add_to_buffer('е');
add_to_buffer('т');
transmit_buffer();
...... // некий код
};
// функция передачи строки
void send_str(char *s){
while(*s){
UDR = *s++;
// и ждем, пока не будет передано
}
}
// выводим нашу строку
send_str("Привет");
примерно так, для начала
хотя если ресурсы позволяют, можно использовать сразу printf() - она по идее у вас через UART и выводит:
В Си строка представляет собой последовательность символов заканчивающихся нулём. Следовательно для педачи строки функции нужно передать указатель на начало строки и передавать байт за байтом пока очередной байт не будет нулём. Такой алгоритм.
There is only 10 kind of people: those who understands binary code and those who dont!!!