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

Fynjisx

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Fynjisx

  • Звание
    студент
  • День рождения 10.10.1981

Контакты

  • Сайт
    http://---
  • ICQ
    0

Информация

  • Город
    Russia
  1. Цитата(Doka @ May 3 2018, 15:18) а Вам есть разница какой линукс, раз Вы на виртуалке??? Ну, вообщем да. Mint как-то попривычней. Цитата(Doka @ May 3 2018, 15:18) я бы поставил RHEL/CentOS, затем: Кодsudo yum install -y make libX11.i686  libXau.i686 libXdmcp.i686 libXext.i686 libXft-devel.i686 libXft.i686 libXrender.i686 libXt.i686 libXtst.i686 Да, я поставил CentOS. В нем запускается. Цитата(wolfman @ May 3 2018, 23:47) Всё это нормально работает и так. Я проверял на AltLinux, Минте, openSuse, Debian. Да чётто как-то...Понимаете на Mint поставил но некоторые виджеты не прорисовываются. К примеру границы кнопок диалоговых панелей, пиктограммочки раскрытия в дереве(вот куда надпись Fitter пропала?), в настройках когда встаешь на нужный параметр он исчезает (License Setup)/. Чего- то не хватает. Притом Минт 18.3. Еще заметил такую фишку, когда что-то одно в системе начинает выполняться вся система становится неотзывчивой. В виртуалке 4 ядра поставил, памяти 4ГБ и вот результат -> Один поток на всю систему!. Или Linux шустрым становится, когда его без всяких виртуальных выкрутасов ставишь?
  2. Привет Всем! На виртуалке стоит Linux Mint. Хочу туда поставить Q17. В связи с этим появились вопросы: - по какому пути лучше ставить? Может завести отдельный диск? - есть ли какие-нибудь особые моменты при установке? PS: в оф. документации отмечается Red Hat'подобный linux и для него: window X libraries: make, libX11.i686, libXau.i686, libXdmcp.i686, libXext.i686, libXft-devel.i686, libXft.i686, libXrender.i686, libXt.i686, and libXtst.i686. — GIMP toolkit: GTK+2. А у меня Минт, мне то что делать?
  3. Привет ВСем! Разбираю проект Amber под Altera. в модуле У pll Xilinx есть Кодu_pll_adv (     .CLKFBIN     ( clkfbout_clkfbin  ),                                   .CLKFBOUT    ( clkfbout_clkfbin  ),                               ); естественно мегафункция Alterы не производит таких сигналов. Какую функциональность они несут в Xilinx? 2. Чем заменить этот буфер для Altera Код    BUFG u_bufg_sys_clk (          .O ( o_sys_clk  ),          .I ( pll_clk    )          ); и вообще насколько его необходимо ставить? Заранее Всех благодарю...
  4. Цитата(Сергей Борщ @ Sep 20 2017, 17:48) ...вы запускаете АЦП в свободнобегущем режиме, т.е. взведение бита ADSC запускает первое преобразование, а дальше АЦП само автоматически начинает следующее преобразование сразу после окончания предыдущего. У вас заканчивается преобразование, скажем, канала 0, генерится прерывание и тут же запускается следующее. Вы попадаете в прерывание, переключаете канал, но это переключение будет принято во внимание только перед следующим преобразованием, поскольку очередное преобразование уже началось. У вас есть два выхода: либо сразу после первой установки ADSC записать в ADMUX номер канала для следующего преобразования и дальше уже ADSC не трогать, либо записать в ADATE ноль и тогда АЦП будет ожидать от вас ADSC перед началом каждого преобразования. Вы молодец Сергей, я тоже пришел к такому выводу после долгих мучений, что вся проблема во free run mode и в прерывании нахожусь когда наверняка следуещее уже шпарит. Просто в даташите это не было описано. В последствии я убрал DATE бит, и запускаю каждое следующее уже в конце обработчика. Цитата(Сергей Борщ @ Sep 20 2017, 17:48) Ужас. Уберите __delay_us() и больше так никогда не делайте. Во-первых АЦП само добавляет необходимое количество тактов к времени выборки при смене канала, а во-вторых задержки в прерывании - это просто глупо. Пока вы сидите в этой задержке все остальные прерывания заблокированы. Логично рассуждаете, готов сделать так, но почему тогда в датише описана эта задержка....Ах да, там скорее всего наверное дан пример однократных запусков, т.к к ней комментарий объяснял ее внедрение для устаканивания напряжения на выходе мультиплексора при смене входного канала. Большое спасибо Сергей...
  5. Привет всем! попытаюсь описать свою проблему. Есть 2 аналоговых канала. Оба замеряют напряжение и подключены на ADC7 и ADC0 контроллера. обработчик прерывания написан так: Код#define             ADC_VREF_TYPE         ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR))   //AREF - reference #define        ADMUX_0                (ADC_VREF_TYPE|0) #define        ADMUX_7                (ADC_VREF_TYPE|7) DIDR0  = (0<<ADC5D)|(0<<ADC4D)|(0<<ADC3D)|(0<<ADC2D)|(0<<ADC1D)|(0<<ADC0D); ADMUX  = ADMUX_0; //AREF pin ADCSRA = (1<<ADEN) |(1<<ADSC) |(1<<ADATE)|(0<<ADIF) |(1<<ADIE) |(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); ADCSRB = (0<<ADTS2)|(0<<ADTS1)|(0<<ADTS0);// отказываемся от источника запуска преобразования ISR(ADC_vect) {             static u08 i = 0;                  adcData[i] = ADCW;// Read the AD conversion result     switch(i)     {         case 0:         {             ADMUX = ADMUX_7;    //res             i = 1;                     }break;                  case 1:         {             ADMUX = ADMUX_0;    //m_s             i = 0;                     }break;                      }         _delay_us(10);// Delay needed for the stabilization of the ADC input voltage             ADCSRA|=(1<<ADSC); } проблема в том, что adcData[0] оцифровывает значение с канала ADC7, а adcData[1] с канала ADC0, т.е наоборот...В чем косяк понять не могу, ведь я могу сменить вход adc только при окончании текущего преобразования и до запуска слудующего. Попав в обработчик я полагаю, что текущее преобразование уже закончено и новое не запустится, пока не взведу флаг ADSC.
  6. Понял в чем косяк... USART разрешил прерывания разрешил, а обработчики прерываний не задал. И при их возникновении прога постоянно уходила на их выполнение так и добравшись до основого цикла
  7. Привет Всем! Срочно нужна помощь!!! Работаю с атмегой 328(без буквы p). Проект создал в Atmel Studio7. ОС на компе - 7ка. Код#include <avr/io.h> //подключаем по id соответствующий заголовок #include <avrlibdefs.h>        //sei() #include <avrlibtypes.h> #include "hall.h"             //define F_CPU #include <util/delay.h> #include <avr/interrupt.h> #include <string.h>            //memcpy() #include "init.c" static inline void ADC_SingleStart() __attribute__((always_inline)); static inline void ADC_WaitConvert() __attribute__((always_inline)); static inline void ADC_OFF() __attribute__((always_inline)); static inline void ResetTimers() __attribute__((always_inline)); u32  Timers[TIMERS_MAX]; // Declare your global variables here //******************************************* //    T = 0.20ms //******************************************* ISR(TIMER0_OVF_vect) {     static u08 entryCnt = 0;     entryCnt++;          //for(u08 i = 0; i < TIMERS_MAX; i++){     if(entryCnt==5){         Timers[SYS_TIMER_ID]++;             entryCnt = 0;     }              OCR0A = pwmLevels[PWM5_1];     OCR0B = pwmLevels[PWM5_2];     OCR1A = pwmLevels[PWM5_3];     OCR1B = pwmLevels[PWM5_4];     OCR2A = pwmLevels[PWM5_5];     OCR2B = pwmLevels[PWM5_6]; }//----------------------------------------- #define FIRST_ADC_INPUT     7 #define LAST_ADC_INPUT         7 u16 adcData[LAST_ADC_INPUT - FIRST_ADC_INPUT + 1]; // ADC interrupt service routine ISR(ADC_vect) {             static u08 i = 0;     // Read the AD conversion result     adcData[i] = ADCW;     // Select next ADC input     if (++i > (LAST_ADC_INPUT-FIRST_ADC_INPUT))        i = 0;     ADMUX = (ADC_VREF_TYPE|FIRST_ADC_INPUT)/*+i*/;     // Delay needed for the stabilization of the ADC input voltage     _delay_us(10);     } // Single start the AD conversion void ADC_SingleStart() {     ADCSRA|=(1<<ADEN)|(1<<ADSC);     } //ожидание ADC преобразования void ADC_WaitConvert() {     while( !(ADCSRA & (1<<ADIF)) ){};    //adcData - верно             } //Отключить ADC модуль void ADC_OFF() {     ADCSRA&=~(1<<ADEN);             } int main(void) {         init();            //port's init         sei();             // __enable_interrupt() sreg[i]=1     ADC_SingleStart();    //scan stab M#/S             ADC_WaitConvert();    //ждем преобразования уровня напряжения     ADC_OFF();            //отключаем в целях экономии              if(adcData[0]*VREF/1024 > VREF/2.0)    //TTL level high 2.5V     {     ...     }     else     {     ...         }              UCSR0B = (1<<RXCIE0) | (1<<TXCIE0) | (0<<UDRIE0) |  /*(1<<RXEN0) |*/ (1<<TXEN0)| (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80);       while (1)         {             DDRC|= (1<<DDC3);         PORTC|=(1<<3);                  DDRD|= (1<<DDD7);         PORTD|=(1<<7);         }      } проблема в том, что я использую в проекте USART и вот что заметил: когда в строке для инициации UCSR0B раскомментирвоать (1<<RXEN0), то пин 3 порта С и пин 7 порта D не устанавливаются конструкциями из блока While. При комментировании этого бита, на обоих пинах выводится 1. Не понял почему!!! заметил если ещё поставить после USR0B - запрет всех прерываний, то тогда единицы устанавливаются в обоих случаях(т.е и при расскоментированном бите RXEN0). Такое ощущение что где-то описан обработчик который принудительно сбрасывает мои биты С3/С7, но они у меня ещё не написаны? Подскажите в каком направлении рыть, запарился уже...Может чего-то недогоняю... Проверял 2 платы с этим кристаллом, обе ведут себя одинаково.
  8. Аuto Router не хочет разводить.

    Цитата(Fynjisx @ May 14 2017, 08:46) ... Сначало тормознулся на авторасстановке фанаутов... Вся проблема в том что у меня ничего не происходит в конечном итоге. ...по факту как была плата без фанаутов так и осталась. такое впечатление что не работает вообще авторазводка. все таки хочется чтобы эта вещь работала. Кто нить ей вообще пользуется???
  9. привет Всем! Кто- нить может объяснить назначение нижнего диода?
  10. Аuto Router не хочет разводить.

    Цитата(Uree @ May 15 2017, 10:11) Независимо от формы шейпа нужно установить его тип в Dynamic copper: [attachment=107099:Shape_Type.PNG] в этом случае будет заливать как дОлжно, с вырезами на чужих объектах. У Вас, судя по поведению, почти наверняка в этом месте выбран Static Solid. Еще возможно выключен режим динамической заливки и нужно принудительно обновить шейп в режиме его создания/редактирования через ПКМ->Update Shape. С динамик купер, это я делал. Вы правильно подскали, что не было обновления шейпа. Нашел его в настройках "Setup/Design Parameter Editor" вкладка "Shape" кнопка "Edit global dynamic shape parameter" было так как на рис.. Кстати а чем отличается режим Dynamic Fill: Smooth от Rough??
  11. Аuto Router не хочет разводить.

    Цитата(Uree @ May 14 2017, 21:46) Видимо имеется в виду наличие атрибута VOLTAGE с заданным значением для такой цепи. А что именно Вы хотите получить от цепи типа POWER? Для PCB Editor сами по себе такие цепи ничем от прочих не отличаются, ну кроме того, что у них не отображаются ratsnest. Другое дело, что Вы пропишете в правилах для них. Как я уже писал в автороутере можно выбрать - либо все цепи развести, либо цепи питания. Когда я указываю "все цепи" то он разводит, почему дорожки делает с прямыми углами пока не понятно. Но вот когда указываю только опцию "Power Nets" - вообще ничего не разводит. Вот я и подумал, наверно где-то в констрейн-менеджере можно задать POWER цепи. Ну попутно еще у вас спрошу: пытаюсь сделать полигон земли в Bottom слое, для этого использую либо инструмент AddRect либо Shape/Rectangle далее полученный прямоугольник привязываю к земле, проблема в том что этот прямоугольник все закрашивает, даже трассы и виа принадлежащие другим цепям, не отделяя их необходимым спэйсингом.
  12. Аuto Router не хочет разводить.

    Цитата(Uree @ May 14 2017, 18:19) Фанауты с настройками замечательно доступны без авторазводки, через меню Route -> Create Fanout. Можно выбирать пины, на которых их добавлять, можно целыми корпусами, можно всю плату одним движением выбрать и пусть они сгенерятся. Направление, тип переходных, надписать правила - все доступно. Необходимости запускать для этого Спекктру - никакой. Да, действительно. А как указать аллегро, что цепи +5, gnd являются POWER цепями???Искал в constraint manager, но не смог найти.
  13. Падает Allegro 17.20

    Цитата(embddr @ May 13 2017, 14:57) На Win10 под VmWare тоже не падает. Значит каким-то образом виновата моя семерка, хотя она самая обычная, с последними обновлениями. у меня тоже валилась как у Вас на 7. Пришлось ставить 10. Я даже где-то писал об этом.
  14. Аuto Router не хочет разводить.

    PCB Allegro 17.2. Руководствувюсь в работе книгой Митцнера. Дошел до темы предварительная трассировка платы. Сначало тормознулся на авторасстановке фанаутов.У него написано: нужно в констрейн-менеджере выделить интересующие Rats, это группа Properties/General Properties. И там в колонке No Rat отметить те которые нужно скрыть. Далее навигация по меню такая: Route/PCB Router/ Route Automatic. Ставим крестик где написано Fanout, жмем PArams и на вкладке Fanout выставляем типы фанаутов, их направление и жмем Route. Вся проблема в том что у меня ничего не происходит в конечном итоге. Да, появляется окно показывающее что процесс запустился и завершился. А по факту как была плата без фанаутов так и осталась. Тоже самое проверял если зайти Route/PCB Router/Fanout by pick... Такое впечатление что не работает вообще авторазводка. Есть ощущение что чего-то не сделал. Подскажите в чем ошибаюсь???
  15. Создание макрокоманд в Allegro/OrCAD

    Цитата(PCBtech @ May 4 2017, 22:44) Полезная информация. Чтобы создать макрокоманды (скрипты) в Allegro, пользователи обычно используют запись лога команд меню (через файл журнала jrl, который создается на диске при выполнении любых действий в Allegro PCB). Но есть еще один хороший способ узнать, какие в Allegro есть команды и как их использовать: Tools->Utilities->Keyboard Commands Вы бы могли составить перечень наиболее ходовыХ?