|
Диагностика в отдельном потоке + printf |
|
|
|
 |
Ответов
|
Dec 9 2008, 12:46
|

Местный
  
Группа: Свой
Сообщений: 331
Регистрация: 22-07-08
Из: Р О С С И Я
Пользователь №: 39 145

|
Цитата(aaarrr @ Dec 9 2008, 17:39)  Вопрос-то в чем? Что, как и кому Вы собираетесь передавать? Есть много потоков в которых я желаю выводить диагн инф. Но возникают глюки связанные с разруливанием ресура под названием printf (диагностического порта). === Решил используя очереди и сейчас стоит вопрос как передавать через очереди параметры на функцию принтф. === пример: printf("Hello russian vodka v %d gradusov", (unsigned short) 40 ); и хочется передать принтфу: "Hello russian vodka v %d gradusov", (unsigned short) 40
|
|
|
|
|
Dec 9 2008, 13:12
|

Местный
  
Группа: Свой
Сообщений: 331
Регистрация: 22-07-08
Из: Р О С С И Я
Пользователь №: 39 145

|
Цитата(MrYuran @ Dec 9 2008, 18:01)  Так нельзя. задавайте фиксированный формат сообщения, типа printf("%s %d",char comment, int parameter) и передавайте в поток соответствующие переменные === Можете поподробнее? === Может всё-таки есть выход на любой случай жизни? А то таких конструкций можно до бесконечности писать (с фиксированным форматом). ===
|
|
|
|
|
Dec 9 2008, 13:21
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(FormatCft @ Dec 9 2008, 16:12)  Можете поподробнее? Смысл в том, что строку параметров, которая в кавычках, передать никак нельзя, т.к она const* char и компилятор её подставляет по месту. А ещё лучше использовать sprintf() и формировать текстовый буфер, а потом отправлять его в любой поток и делать с ним всё что угодно. Про то, что на слабых контроллерах лучше вообще не использовать printf , я даже не упоминаю.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Dec 9 2008, 13:30
|

Местный
  
Группа: Свой
Сообщений: 331
Регистрация: 22-07-08
Из: Р О С С И Я
Пользователь №: 39 145

|
Цитата(MrYuran @ Dec 9 2008, 18:21)  Смысл в том, что строку параметров, которая в кавычках, передать никак нельзя, т.к она const* char и компилятор её подставляет по месту. А ещё лучше использовать sprintf() и формировать текстовый буфер, а потом отправлять его в любой поток и делать с ним всё что угодно. Про то, что на слабых контроллерах лучше вообще не использовать printf , я даже не упоминаю. Понял. Спасибо огромное! Проверил всё работает просто замечательно! А на счет принтфа я не согласен. У меня всё летает на 24МГц с 12ю потоками и задачами не самыми простыми. Главное приоритет сделать поменьше у принтфа. У меня ему приоритет самый низкий дан.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|