Jump to content

hasl

Members
  • Content Count

    519
  • Joined

  • Last visited

Posts posted by hasl


  1. 1. обычно размыкают фазу

    2. т.е. вам нужно чтобы включался только один?

    3. что за концевик и что он делает - его что замыкает при срабатывании клапана?

    4. Вы что нажали кнопку и держите.?


  2. и в некоторых случаях компилятор не знает к какому привести.
    В данном случае он знает и права не имеет самовольничать. По крайней мере, даже если он и приводил бы к флоату, при присваивании в буфер, он бы его привёл к чару.

    В функцию printf ты передаешь не int или float а указатель на переменную- разницу не видете?

  3. Alex все правильно пишет. Компилятор не имеет права приводить к флоат, если оба значения, включая переменную - int

    Еще раз говорю это Си. Здесь подобное допустимо и за этим нужно следить. За сим дальше спорить не буду. С уважением !

  4. Alex, Пост 34: http://www.cyberforu...0502-page4.html

    Дело в том что даже так не работает :)

    printf("%c%c" , temp0/10, temp0%10); // error!
    printf("%d %d" , temp0/10, temp0%10) // ok!
    

    а вот printf к стати очень критично относиться к типам в первой строке у вас как раз float и будет, а вы пытаетесь вывести char

    1. вот это:

    temp0/10

    уже может расцениваться как флоат

    Интересно, это из каких соображений ?

    temp0 - int, константа (10) - тоже int. С какой стати компилятор будет приводить это выражение к флоату ?

    по опыту. Любое число делиться с остатком, затем компилятор приводит к нужному типу если он не указан. и в некоторых случаях компилятор не знает к какому привести.


  5. константы выводятся : ))

    Вчера 300 раз проверял!

    Сделал так:

    printf("T= %u %u %u %u %u %u %u %u %u END\n\r",temp0/10,temp0%10,temp1/10,temp1%10,temp2/10,temp2%10,temp/10,temp%10,read_adc(0));
    

    так работает! Но будет дольше выводить..

    1. вот это:

    temp0/10

    уже может расцениваться как флоат. Это Си здесь приводить типы надо и следить за ними.

    Вот так:

    (int)(temp0/10)

    2. и к тому же без разницы как вы образовали свои числа - путем создания переменных или напряму


  6. А вот это:

    if(temp0>1000) temp0=1000;

    if(temp0==0) temp0=1;

    if(temp1>1000) temp1=1000;

    if(temp1==0) temp1=1;

    if(temp2>1000) temp2=1000;

    if(temp2==0) temp2=1;

    if(temp>1000) temp=1000;

    if(temp==0) temp=1;

    temp_buff[0]= temp0/10;

    temp_buff[1]= temp0%10;

    temp_buff[2]= temp1/10;

    temp_buff[3]= temp1%10;

    temp_buff[4]= temp2/10;

    temp_buff[5]= temp2%10;

    temp_buff[6]= temp/10;

    temp_buff[7]= temp%10;

    вообще нафига?


  7. 1. через sprintf загоните число в нужном вам форматировании в буфер, а затем передавайте его в порт

    2. Либо математически выделяйте разряды и также отправляйте


  8. уважаемый Guest_Дед Лайн сказал, что неловкая неожиданность с транзистором выходит :). Если и так можно компаратор поставить

    Не надо там никаких таймеров. Зарядный конденсатор. Танцуйте от этого - http://radiokot.ru/c...g/generator/04/

    а что может быть проще 1го транзистора конденсатора и резистора? Удивите народ!


  9. Проверьте заземление. Все фильтры работаю относительно заземления и никак по другому. Да и не путайте зануление и заземление. У вас в розетке возможно зануление а не заземление. На некоторых фильтрах даже есть индикатор земли, если не горит знач земли нет - и нет защиты от помех


  10. Люди разные и правда почему то у всех своя, хотя закон Ома один на всех.

    p.s. по теме - соединять можно. Любой трансформаторный БП как и ИБП имеет гальваническую развязку так, что соединяйте хоть + хоть -

    на этом форуме любое обоснование неверности утверждений собеседника приводит к баттхерту а если превести пруфы то будут и личные оскорбления

    Легко прикрыться когда ты гость. Как ребено - пукнул и пальцем тычит в сторону. Вот интересно когда у нас как в китае для регистрации на сайтах нужен будет обязательно паспорт

  11. используйте прерывание. тогда функция приема и передачи будет вызываться только тогда когда принят или передан байт. и забудьте вы про сви put И get напрямую посылайте в порт


  12. Я успел рубонуть тот пост.

    А как вы обратитесь напрямую? к 5-му символу?

    Чтоб к нему обратиться , нужно прочитать всю строку , верно? Или я не прав?

    нет вы не правы

    string строка = "строка"

    char символ = строка [5];


  13. Массив - это данные , к которым можно обращаться по индексу.

    А строка - просто данные из текстом , к которым нельзя обратиться , к примеру: к 5-му символу , или 6-му. :)

    Блин а вот это сообщение я пропустил но потом поржал канечно. как это в строке к символу по индексу нельзя обратиться? - выпал в осадок
    • Upvote 1
    • Downvote 1

  14. Да что вы спорите про массив то... Какого бы вида массив не был подпихнут в printf - он будет трактоваться, как строка и читаться до ближайшего нуля. Хоть он даже не в char-ах будет записан.

    так я проэто и пытаюсь объснить, да что то нар плохо.

    Проблема решена - теи=му можно закрывать. Харе флудить. :)


  15. char строка [] = {'s','r'}

    printf (&строка)

    вот так работает и кто скажет что массив не строка

    Я скажу. То, что у Вас работает - не доказательство тому, что массив - строка :)

    char arr[]={1,2,0,4,3,8,0,22,3};
    

    Строка ? :)

    а что ж это такое - какая разница как это представлено к примеру в С можно так

    string строка = "aslhf"

    перем = строка [0];

    значит строка это массив а массив может быть строкой

    УРАА!! Все вышло записью в UDR значения в формате 0b00000000; Хотя 0x00 не работало! Всем спасибо. Попробую еще объявить массив unsigned char, как посоветовал artos5

    не ура а приведите код как было до решение проблемы и как стало, чтобы если кто нападет на такиеже грабли могли понять.

×
×
  • Create New...