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

xvr

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    2

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


  1. Например fopen/fwrite/fprintf/fclose Имеется в виду VCL? Это метод, сохраняющий контейнер (от которого вызывается) в файл. Для каждого контейнера может быть своя реализация метода SaveToFile (точнее SaveToStream, а SaveToFile обычно реализуется через него). Прямого аналога в С нет.
  2. Зайди на сайт Altium'а (http://www.altium.com/) там лежат все библиотеки для PCAD в свободном доступе. Если чего то нет (а чего то явно не будет) то это придется рисовать самому (или искать готовые по форумам и пр) Это надо искать там, где ты собрался изготавливать платы - у каждого производителя свои технологические нормы
  3. Посмотрел в datasheet'ы, действительно можно, но не для всех тиристоров. :) Есть так называемые 3 Quadrant - они открываются при ОТРИЦАТЕЛЬНОМ напряжении на гейте (относительно MT1) для любой полярности MT1-MT2, а при положительном - только для одной полярности MT1-MT2. Есть 4 Quadarnt - они открываются при любой полярности на гейте. Может где то еще остались 2 Quadant - они управляются как я писал выше. Так что обойтись без оптрона можно, но осторожно
  4. Нельзя. Симистор управляется переменным напряжением на затворе (полярность напряжения на затворе должна соотвествовать полярности полуволны сетевого напряжения), если управлять напрямую от Меги (а это можно сделать), то семистор будет открываться только для одной полуволны сети.
  5. Тогда уж man m4. Sed здесь не очень подойдет - он обрабатывает исходные файлы построчно, сделать ему макрос на несколько строк очень геморойно.
  6. Для начала надо определится с параметрами и управлением индикатором. У индикатора динамическая индикация на 4 разряда. Т.е. ток на один сегмент надо увеличить в 4 раза. Максимальный ток на вывод AVR - 40ma, максимальный суммарный (gnd) - 200ma. Всего сегментов 8, т.е. ограничивать будет именно суммарный ток - 200/8 = 25ма, с учетом динамической индикации - 25/4 = 8ma. Видно будет (для курсовой достаточно). Для управления анодами индикатора понадобятся отдельные ключи, нагрузочной способности выводов не хватит. Рекомендую поставить что нибудь готовое (искать по ключевым словам high side switch у Allegro, IR, Infineon и куче других. Бывают многоканальные сборки) Для этого всего надо 8+4 вывода МК. Плюс еще 10 выводов под параллельный порт, итого - 22 I/O, ATtiny явно недостаточно, нужна какая нибудь ATMega (смотрите по количеству доступных I/O выводов)
  7. Стандартный DMA (8237) не умеет пересылать память->память :( Так что можете расслабится - не получится :crying:
  8. Это правильно :) Во первых - успеет ли Tiny AVR принять и обработать данные на 16 Mbps? Во вторых, не факт, что ттл сработает на таком расстоянии и скоростях. В любом случае LVDS будет на порядок надежнее.
  9. Есть метод проще: Читаем U32, U16 и снова U32. Если первое и последнее значение, прочтенное из U32 не совпали - все чтения повторяются (было переполнение таймера и прерывание).
  10. Очень заманчивый подход, более того, у все большего количества производителей MCU появляются такие тулзы (по крайней мере на уровне настройки потрохов самих MCU), но тут есть одно НО - те самые xml должен кто-то писать, и что бы не отставать от выпуска новых семейств/чипов этот 'кто-то' должен быть самим производителем, а с этим проблемы :07: Увы даже у них самих зачастую описатели чипов присуствуют в нескольких форматах для разных ихних же тулзов (например у Microchip'а) и с разным заполнением (количество MCU прописанных в ихнем Wizard'е на порядок меньше, чем в MPLAB'е) Можно попытаться конвертировать описания из того же MPLAB'а (там они есть все) в нужные xml автоматически так же натыкается на трудности - в исходных описаниях есть не все, что нужно Wizard'у, кроме того, у разных производителей они принципиально разные :cranky: Так что остаестя ждать, пока какая нибудь крупная фирма не возьмется за титанический труд и не сделает что-нибудь, из чего со временем получится стандарт, или не найдется тысяча другая энтузиастов которые возьмутся за систематизирование информации.
  11. По стандарту С (и С++) после #define должен быть ИДЕНТИФИКАТОР, т.е. нечто, состоящее из букв (английских), цифр и знака '_'. Точка ('.') к этому набору не относится, так что ЛЮБОЙ С компилятор имеет полное право обругаться на эту конструкцию, или трактовать ее как #define PORTX .Y(x) PORTX = (PORTX & ~(1 << Y)) | (x << Y) что для PORTX.Y(1) будет раскрываться в .Y(x) PORTX = (PORTX & ~(1 << Y)) | (x << Y) .Y(1) что явно не то, что хотел автор Очень повезло, что CodeVision разрешил точку в имени define'а, gcc (он же WinAvr) трактовал это иначе :(
  12. На программу свою посмотри: if (a==200) a=0; if (a==200) ... Как может a во втором if'е быть равна 200, если ее сбросят в 0 в первом if'е? Или - чему должна быть равна a при входе в цикл, что бы сработал второй if?
  13. То, что у корпуса 208 ног не означает, что к нему можно подключить 208 пользовательских вывода :( Например, Spartan IIIE PQ208 - 158 user I/O, может и не влезть (автор добавит еще ног 10 о которых забыл сказать сразу - и привет :cranky: )
  14. Потому что первый if сбросит переменную в 0, и то, что она успеет досчитаться до 200 до второго if невероятно.
  15. Если мне не изменяет склероз, то JTAG пинам по стандарту полагается быть подвешенными, т.е. иметь pull-up резисторы.
  16. Угу, сухой остаток - шина данных разделенная 2х64 бит, стробы записи и чтения - так? Плюс еще с десяток ног для 8ми битной шины, итого около 150 ног. Вырисовывается некий монстр в BGA корпусе Ишите девайс подходящий по количеству ног и напряжениям, по ресурсам он похоже подойдет автоматически :)
  17. Читал (очень давно) в журнале 'Приборы и техника эксперимента' очень интересный способ решения данной задачи (без CPLD и даже без MCU). Длинна импулься считалась обычным образом (на счетчиках), хвост импульса, не уместившийся в период тактовой частоты, скармливался отдельной схеме досчета. Схема состояла из 2х линий задержек (на кусках коаксиального кабеля). Задержки были больше периода тактовой частоты (из 1й части), и слегка отличались (на единицу измерения). Импульс подавался на вход обеих линий задержки, выходы их объединялись по логическому и, и снова заводились на вход обоих линий задержки. На выходе, после лог. и, получался задержанный и укороченный на разницу времен задержек импульс, который снова отправлялся по кольцу. Схема считала количество оборотов импульса по кользу из ЛЗ. В некоторых FPGA есть встроенные настраиваемые цифровые ЛЗ (в Spartan III например)
  18. Какой язык (С/С++) и что подразумевается под 'остальными действиями'? Если С++ то можно воспользоваться шаблонным классом и его специализациями для int/float/etc
  19. Исправлять программу :1111493779: #include <tiny2313.h> #include <delay.h> int a=0; void main(void) { #asm("sei"); DDRB=2; GIMSK|=(1<<5); PCMSK|=(1<<7); while(1) { if (a==200) // <<< Сюда попадаем, если a == 200 {a=0; // <<< Сбрасываем а в 0 PORTB=2; // <<< Взводим бит в порте, таким он и остается (навсегда) if(a==200) // <<< Сюда никогда не попадаем, так как 2мя строками выше мы обнулили а {a=0; PORTB=0; }; }; }; } interrupt [PCINT] void pin_change_isr0(void) { a++; }
  20. Его надо зарегистрировать на Xilinx'е, там дадут лицензию на Starter версию.
  21. Любая логическая функция (читай - чисто комбинаторная схема) может быть представленна в виде "произведение сумм" (т.н. 'нормальная конъюктивная форма').
  22. Будут бубны, будут :) Лично столкнулся с PC (правда это был сервер в rack 19"), которому пришлось подавать на вход RS232 отрицательное напряжение, т.к. на 0 (вместо -12) он реагировать отказался :crying:
  23. О! :07: А почему не какой нибудь составной, ампер так на 20-30? :) Поставь что нибудь типа КТ315, у КТ815 слишком маленький коэфициент усиления (h21e) Точно. Желательно ввести транзистор в насыщение, т.е. взять такой ток базы, что бы ток через транзистор ограничивался его нагрузкой, а не h21e самого транзистора. Поставь готовые ключи, что нибудь типа ULN2804
×
×
  • Создать...