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

roman_i

Members
  • Постов

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

  • Посещение

Весь контент roman_i

  1. Может кто подскажет, для чего нужны диоды D1, D2 (обычно в таких схемах их не встречал) и обязательны ли они в схеме с полевиками?
  2. Извините, не мог раньше зайти на форум. По схеме - правая часть служит для регулировки мощности. Через нее подается питание на все ключи. Так называемая ШИМ в данном случае не очень ШИМ - это импульсы постоянной частоты 16кГц,скважность которых (0-100%)устанавливается при настройке и я не заметил,чтобы она изменялась во время работы. Эти импульсы накладываются на основную частоту так,как показано на схеме - подняты относительно нулевого уровня. На выходе драйвера получается что-то типа полушага. Меня интересует, будет ли в принципе схема на полевиках адекватно работать вместо штатной? Может кто делал похожее на такие мощности? Изготовитель сего чуда техники - Япония
  3. Здравствуйте уважаемые форумчане. Имеются модули управления мощным 5-фазным шаговым двигателем (100в, ~ 3-4 A ток фазы), изготовленные в 1990-1995 годах. Периодически выходят из строя выходные транзисторы (Дарлингтон 2SD1027, 200V ,22A).Транзисторы достаточно дефицитные и дорогие, аналоги тоже. Кроме того, драйверы плеч изготовлены в виде модулей, залитых чем то вроде мягкой керамики и их ремонтопригодность близка к нулю. Есть мысль переделать выходной каскад на более современной элементной базе. В прикрепленных файлах схема одной фазы,срисованная с платы и мой вариант переделки. Прошу знающих подсказать, имеет ли такой вариант "право на жизнь" и какие могут быть "подводные камни". Заранее спасибо.
  4. порядка 20 входных датчиков + клавиатура +10 кнопок + 14 выходов полностью смоделировать на столе сложновато. Конечно,основные функции были опробованы до установки на машину,но кто бы мог подумать, что вылезет такой глюк...
  5. осциллографом посмотреть технически сложно,так как машина большая и каретка движется вместе с креслом оператора,а электроника в 1,5 м от кресла.Разве что прицепить светодиод на выводы программирования...Странно то,что INT1 (датчик высоты) тоже не отрабатывается,но я для него сделал изменения в программе и периодически опрашиваю вывод контроллера,а сделать такой опрос датчика "0" программно сложновато,да и зачем,если оно "ДОЛЖНО!!!" так работать.тупик ...По датчику высоты чуть не угробил машину...
  6. в программе после наезда на датчик "0" значение переменной position передается по шине I2C на модуль индикации и выводится на табло.если машина снова начинает двигаться,то это значение изменяется уже от текущего значения,то-есть от числа 80. В железе сброса на 80 при наезде на датчик не происходит.
  7. извиняюсь,опечатка.сейчас исправлю.INT0 и TMR0 работают нормально. А как исправить?
  8. на вход поступают через опторазвязку уже обработанные сигналы с промышленного энкодера и магнитного датчика, дребезг,как таковой,там невозможен.
  9. PIC18F4520+MPLAB 8.63+HI-TECH PICC 9.83. Проблема в том,что не прерывания INT0 (высокий приоритет) и TMR0 (низкий приоритет) нормально работают как в Proteus,так и в железе. Прерывания INT1 и INT2 в Proteus работают нормально, независимо от назначенных приоритетов, а в железе контроллер их игнорирует. Помогите советом, куда копать. Кусок кода прикреплен. форум.txt
  10. Трудновато переходить с ассемблера на С, но приходиться. Еще раз спасибо. Тему можно закрыть.
  11. Понятно. В таком случае размер буфера всегда должен быть на единицу больше размерности максимального числа?
  12. Спасибо за подсказки. Будем дальше учиться. Но получается, что это нормальная работа itoa ?
  13. Я со строками раньше не работал и только пробую программировать на С. В данном случае хочу понять.почему так получается. Если разнича в количестве цифр равна 1,то все носмально. А если разница в две цифры, то в массиве остается старшая цифра: itoa(buf,351,10); //buf[00,00,31,35,33] itoa(buf,1256,10); //buf[00,36,35,,32,31] itoa(buf,543,10); //buf[00,00,33,34,35] itoa(buf,1256,10); //buf[00,36,35,32,31] itoa(buf,54,10); //buf[00,36,00,34,35]
  14. нет.выводятся последовательно все значащие цифры из массива
  15. обнулить не проблема.но выводить надо на два двухстрочных индикатора 4 числа.надо сделать минимальное время вывода.А это такая специфика работы itoa, или где-то ошибка?
  16. roman_i

    Проблема С Itoa В Hi-Tech Picc

    Программирую на С относительно недавно. Компилятор HI-TECH PICC v.9.71a в связке с MPLAB. Симуляция в Proteus и MPLAB SIM. Суть вопроса в следующем: имеется входная переменная (integer), которая в процессе выполнения программы изменяет значение от 0 до 16000. С помощью itoa конвертируется в символы и выводится на индикатор. Проблема в том, что если в какой-то момент переменная примет значение больше 999 (например 2345), то при следующем выводе меньшего числа (например 21) в буфере остается часть предыдущего числа (5). Пример кода: itoa(buf,351,10); // в буфере buf[0x00,0x00,0x31,0x35,0x33] itoa(buf,12567,10); // в буфере buf[0x37,0x36,0x35,0x0x32,0x31] itoa(buf,54,10); // в буфере buf[0x37,0x36,0x00,0x34,0x35] Причем при симуляции и в протеусе и мплаб одинаковые результаты. Прошу подсказать, в чем может быть проблема.
×
×
  • Создать...