Перейти к содержанию

IntelXerox

Members
  • Постов

    34
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные IntelXerox

  1. Добрый день. Недавно попал ко мне в руки БП ATX-400. Внутри обгоревшая "точка" около которой 3 диода 1 резистор (R16) и маленький полиэстэровый конденсатор (C9). Резистор совсем обуглился, у конденсатора черная нога, диоды закоптились. Проблема в том, что я незнаю какого номинала был резистор, нет самой схемы БП... и можно ли обойтись без конденсатора, ибо не могу найти в своих закромах.

    post-197962-0-59459400-1459873310_thumb.jpg

    post-197962-0-17378100-1459873393_thumb.jpg

    post-197962-0-41048000-1459873437_thumb.jpg

    post-197962-0-90289000-1459873562_thumb.jpg

  2. Возможно не по теме, но все же:

    Имеется Android устройство подключенное к Wifi и компьютер на ОС Вин7 подключенный к LAN

    Проблема следующая, Android устройство не видит данный компьютер в сети, проверялось программой Network Scanner

    Компьютер подключен к сети по статичному ИП 192,168,1,50 А андроид устройство принимает DHCP (в настоящий момент 192,168,1,201

    post-197962-0-83991400-1456593949_thumb.png

    post-197962-0-78629900-1456593950_thumb.png

    post-197962-0-87436600-1456593957_thumb.png

  3. стоит почитать про битовые операции, считай это основа программирования.

    вариантов как это сделать несколько можно даже через if else

    if ((flag&(1<<1))==0)

    {PORTD&=~(1<<6);}

    else

    {PORTD|=(1<<6);}

    А есть возможность обойтись без if

    Как присвоить 6 биту portd 1бит переменной flag)

    В CVAVR это решается не просто, а очень просто

    bit flag;
    ...
    PORTD.6=flag;
    

    Flag - байтовая переменная :lol:

    стоит почитать про битовые операции, считай это основа программирования.

    вариантов как это сделать несколько можно даже через if else

    if ((flag&(1<<1))==0)

    {PORTD&=~(1<<6);}

    else

    {PORTD|=(1<<6);}

    А есть возможность обойтись без if

  4. Спасибо, ребят, за ответы. Плату я шкурил и растворителем полоскал, скорее всего, что медный купарос "старый" тк.. Камень купароса был темного цвета, я его ломал и доставал сердцевину.

    Счас уже надыбал у знакомого хлорного железа, чумовая вещ.... Я таких скоростей травки еще никогда не видел))

  5. Всегда травлю медным купоросом от 15 до 30 минут , что то вы не правильно делаете ...

    Вот я и хочу понять, что же не так делаю...

    подогреть надо..

    Всегда стояло на печи)) 30-70° постоянно

  6. В субботу закинул плату с нанесенным тонером в раствор медного купороса.... Сегодня понедельник утро плата только сейчас дошла до момента,, когда по краям начала слазить медь.... Как правильно дотравить плату, что бы дорожки 0,8 мм не смыло.. Как часто нужно менять раствор,, какие пропорции на количество воды,, как часто мешать.. Который раз травлю плату.с дорогами 0,8, постоянно слазят дороги либо недотрав в определенных частях платы. Последний раз плата была в растворе 1/2, где 2 части соли.

    Аналогичные темы:

    0. Чем Травить Плату

    1. Травление Печатных Плат С Помощью Медного Купороса

    2. Травление Персульфатом Аммония

    3.Можно Ли Таким Способом Протравить Дорожки

  7. Взял оболочку вашего кода и переписал под себя)) сделал эдакое эхо после приема 3-х байт.. в итоге посмотрел терминалом и увидел следующее:

    отправляю любое число в ответ прилетает 80 в ХЕКС тобишь 128 или 1000.0000 в бин

    гадаем дальше, почему такое происходит...

    Щас почищу код и попробую снова

    Здаюсь

    ISR(USART_RX_vect)
    {
    data[i]=UDR;
    i++;
    //далее отлавливаем свой ID, и запускаем заполнение массива в основном цикле.
    if (i==3)
    {
     UDR = data[0];
     _delay_ms(80);
     UDR = data[1];
     _delay_ms(80);
     UDR = data[2];
     i=0;
    }
    ...
    
    

    если отправить 80 80 80 => в ответ 00 00 00

    110 110 110 => 8080 8080 8080

    255 255 255 => 0080 8080 0080

  8. А что за флаги? интересно как работает код...

    я кс делал простой цикл от 0 до 255 и посылал, так я проверил, что передача идет и тинька ее принимает... Вернулся к коду и просто выводил 2 байт без проверки ИД и CRC, заметил, что тинка работает несинхронно с ардуинкой, иногда принимая байт Value за ИД байт

    использовать задержки в прерывании, реально, не очень хорошо))))))

  9. Вообщем, я поместил в тело ифы, которая сверяет байты, код моргания светодиодом, в том же теле включается и выключается портБ.

    Светодиод не моргает в тоже время как светодиод ошибки передачи молчит, получается, что тинка из-за РЦ генератора пропускает те байты и это значит, что тело ифы "Если верно" совершенно не выполняется, те условие

    if ((UMESS[0]^UMESS[1]) == UMESS[2])
    

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

    Вот код Ардуинки если понадобится)

    void loop() {
     // put your main code here, to run repeatedly:
    Serial.write(1); //1 й байт ИД
    delay(20);
    Serial.write(255);  //2 байт Валуе
    delay(20);
    Serial.write(254); // 3 байт КСОР
    delay(1000);
    Serial.write(1); //1 байт
    delay(20);
    Serial.write(0); //2 байт
    delay(20);
    Serial.write(1); //3 байт ксор
    delay(1000);
    }
    

  10. i == 3 - все верно, так как перед сравнением идет инкремент i++ поэтому когда принят третий байт, идет i++ и i уже содержит 3, а скобки не заметил, ща поправим))

    Задержки в прерывании я просчитал, у Arduino тоже стоят задержки между байтами 20мс , а между пакетами 500мс)

    стоп, так скобки правильные...

    if (проверяем CRC)
    {
      if (проверяем ИД)
             { включаем/выключаем портБ
             }
    } else {
    
    морг... морг
    
    }
    

×
×
  • Создать...