Jump to content

    

prst

Свой
  • Content Count

    702
  • Joined

  • Last visited

Everything posted by prst


  1. не, тут мне важно не актуальность, а сама статья, там обсуждалась природа этого явления, вот это то что щас нужно мне
  2. Помнится когда-то тут, в этом разделе кажется, было интересное обсуждение, где один из уважаемых (в то время) пользователей приводил интересную статью(помоему даже его собственную) - сравнение размера скомпиллированного кода ARM компилятора в зависимости от структуры файлов программы. Суть в топике передавался следуюший, есть арм компилятора, один, и есть по разному устроенная тестовая программа, которая делает одно и тоже в разных ее исполнениях. В одном варианте все сделано в одном .c файле, потом разбито на разные .c, потом на .c+.h, потом все это разбросано и для объектов какието параметры менялись... и сравнивался результирующий hex(или чтото еще на выходе). Помнится что самый большой выигрыш был когда все написано в одном файле, но при этом правда код привратился в той еще длины "полотенце"... Я сейчас не могу найти эту интересную статью, ребята, помогите плиз ее найти. Надеюсь на сторожил раздела форума, вы точно должны помнить, это было длинное интересное обсуждение, гдето в 2008-2010гг.
  3. раньше были двунаправленные wifi усилители MANUS-212 (2Вт) возможно щас чтото есть еще...
  4. Как нет? Этого не может быть. Можете ещё скачать альтеровский MAXplus II или старый квартус
  5. - человека может быть уже и нет в живых - человек по какойто причине уже не заходит сюда Напишите ему в приват с оповещением о получении, и узнаете читает ли он вообще или нет. врядли он проигнорит ваше сообщение, в крайнем случае зарегте се новый аккаунт и пойдите на хитрость, предложите ему еще один заказ способов много, тем более гугл знает все )) Ну или попросите моделаторов отседить по логам и IP
  6. Начните с BF533 или BF532 они самые доступные и самые дешевые АЦП/ЦАП у них на борту нет, обычно для DSP они внешние
  7. Спасибо, как раз только что этот способ нашел, правда он у меня по CTRL+Пробел, меняет углы )) И кстати возможно нашел только что баг у 10го альтиума - если перед такой сменой правил переворотов расставить лабель и десигнатор, то после поворотов они устанавливаются в дефолтовое состояние... не удобно малехо, думаю это баг.
  8. Да, спасибо, похоже то что я искал, но тоже это не совсем то. Дело в том что когда перемещаешь то схематик соединяет под 90грд все соединения, то есть не особо то и удобно. ну а при соедении они все замыкаются, и это по сути ни чего не улучшает... Я конечно понимаю что пикад это прошлое и другой продукт - но не могу понять логику - почему тут не сделано такое удобство, что бы соединялись проводники под любым углом как в старом добром пикаде. Может где-то есть галочка отключающая насильно 90грд?
  9. Altuim 10странности, мне этот вопрос не дает покоя. Например сделал я соедение проводника к элементу, и потом захотел его подвинуть, выделяю его и тяну, и.... ну просто пэинт какой-то, честное слово. Вместо того, что бы тянуть все соединения и элемент - он тянет только лишь элемент, а проводники с выкушенным местом остаются на месте. Ыыыыы. Блин, Пикад с такой примитивной задачей справляется на ура. а если мне нужно несколько десятков-сотен элементов переместить, это что потом пересоединенять все эти проводники по новой? Может что-то не включено или какую галочку нужно дергнуть? Добавлено ага, оказывется если зажать Ctrl то как нужно, а вот как сделать по умолчанию так, что бы контрол не жать постоянно?
  10. Altuim 10мне этот вопрос не дает покоя итак - вот сделал я соедение проводника к элементу, и потом захотел его подвинуть, выделяю его и тяну, и.... ну просто пэинт какой-то, честное слово. Вместо того, что бы тянуть все соединения и элемент - он тянет только лишь элемент, а проводникис выкушенным местом остаются на месте. Ыыыыы. Блин, Пикад с такой примитивной задачей справляется на ура. а если мне нужно несколько десятков-сотен элементов переместить, это что потом пересоединенять все эти проводники по новой? Может что-то не включено или какую галочку нужно дергнуть?
  11. Добавлено еще одно место продажи: на сайте UNIDK - Запаянный модуль или Пустая плата.
  12. Цены существенно снизились: ссылка - http://www.uschema.com/forum/viewtopic.php?p=18121#p18121
  13. у меня такое было когда прошивка в кейле под 64й, а шьеш в 256й ил 128й а если собирать под GCC работает на любом камне
  14. STM32F105

    подтяжки?
  15. В варианте который я предлагаю ниже по идее можно без кнопки полностью исходник и описание принципа работы тут - http://projects.org.ua/forum/viewtopic.php?p=17839#17839 я ранее эту схему использовал - советую. если в параллель транзистора TV2 подавать напряжение или в затвор VT1 - то можно без кнопки выключать, прада что бы включить - кнопка нужна будет все равно :rolleyes: .
  16. да я знаю, вы меня не задели )) я этот код вообще не причесывал, и развернул специально что бы не перепрыгивать между листингами и функциями. Это только на стадию запуска 4 битного режима.
  17. Запускаю на своем модуле ARM7MODA LCD индикатор из серии KS0066. Режим этот нужен, так что вопрос принципиальный. Уже столько камней об него заточено что и писать нет смысла, однако есть какие то грабли при запуске, и я вот не пойму то ли это у него не так что то то ли я жутко торможу, надеюсь что первое. Жутко принципиальный момент, по этому хочется его запустить. Итак, 8bit mode - запустился на раз плюнуть, код я подставил свой старый, уже рабочий. Но был затык, и как оказалось, выяснил опытным путем, что индикатор мне попался жуткий тормозяра... каких я не встречал до этого. Индикатор NEWTEC NC08082A. Ну то ладно, главное что нашел виновника, это - его медлительность. Потом залез в его даташит, там приведены намного меньшие таймауты необходимые для работы... А по моему коду получается что нужно намного большие временные периоды между RS -> E -> Data. А вот 4bit mode - напрочь не хочет заводиться. И вот тут у меня какой то шоковый ступор. Так как 4 бит я уже запускал несколько штук ранее. А на этом индикаторе - не получается. В общем вот я вам и пишу, взгляните на код и скажите, это я где то торможу или для этого индикатора нужно что-то отличное от даташита... На не оптимизированный код в 4bit mode не обращайте внимания, это я уже ради удобства выснения проблемы все перенес в один фрагмент #define _RS _B8 #define _E _B9 #define LCD_TIME_FAST (10) #define LCD_TIME_SLOW (50) #define LCD_TIME LCD_TIME_SLOW ... ... //----------------------------------------------------------- void LCD_Config(void) { #ifdef LCD_4_BITS AT91PS_SYS regs = AT91C_BASE_SYS; tick(600*LCD_TIME); regs->PIOA_ODSR &=~_RS; // RS=0; udelay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; udelay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; udelay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; delay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; delay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0x20); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; udelay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0x80); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; delay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0x00); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; udelay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0x80); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; delay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0x00); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; udelay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0x10); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; delay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0x00); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; udelay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (0x30); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; delay(); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_RS; // RS=0; #endif /*LCD_4_BITS*/ #ifdef LCD_8_BITS unsigned char i=0, init_value[] = { 0x01, 0x02, 0x06, 0x0c, 0x14, 0x38 }; /* 16x2 */ for (i=0; i<sizeof(init_value); i++) { lcd_cmd ( init_value[i] ); } #endif /*LCD_8_BITS*/ } /* LCD_Config() */ //----------------------------------------------------------- void lcd_cmd (unsigned char ch) { AT91PS_SYS regs = AT91C_BASE_SYS; #ifdef LCD_4_BITS udelay(); tick(600*LCD_TIME); regs->PIOA_ODSR &=~_RS;// RS=0; tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (ch&0xf0); tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; udelay(); tick(60*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(60*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |= (ch&0x0f)<<4; tick(60*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; tick(60*LCD_TIME); regs->PIOA_ODSR &=~_RS; // RS=0; #endif /*LCD_4_BITS*/ #ifdef LCD_8_BITS tick(600*LCD_TIME); regs->PIOA_ODSR &=~_RS;// RS=0; tick(6*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(6*LCD_TIME); regs->PIOA_ODSR &= 0xffffff00; tick(6*LCD_TIME); regs->PIOA_ODSR |= ch; tick(6*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; tick(6*LCD_TIME); regs->PIOA_ODSR &=~_RS; // RS=0; #endif /*LCD_8_BITS*/ } /* lcd_cmd() */ //----------------------------------------------------------- // Set address of first byte on desired row void lcd_xy( unsigned char y, unsigned char x ) { unsigned char LCD_ROW_ADDRESS[4] = { 0x00, 0x40, 0x14, 0x54 }; unsigned char AddrXYData; AT91PS_SYS regs = AT91C_BASE_SYS; AddrXYData = LCD_ROW_ADDRESS[y]+x; #ifdef LCD_4_BITS tick(60*LCD_TIME); regs->PIOA_ODSR &=~_RS; // RS=0; tick(40*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(40*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |=0x80|(AddrXYData&0xF0); tick(40*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; tick(40*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(40*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |=(AddrXYData&0x0F)<<4; tick(40*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; #endif /*LCD_4_BITS*/ #ifdef LCD_8_BITS tick(6*LCD_TIME); regs->PIOA_ODSR &=~_RS;// RS=0; tick(4*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(4*LCD_TIME); regs->PIOA_ODSR &= 0xffffff00; tick(1); regs->PIOA_ODSR |=(0x80|AddrXYData); tick(4*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; #endif /*LCD_8_BITS*/ } /* lcd_xy() */ //----------------------------------------------------------- /* Show message on LCD*/ void lcd_char( unsigned char value ) { AT91PS_SYS regs = AT91C_BASE_SYS; unsigned char kod; kod = value; kod = lcd_recode( value ); #ifdef LCD_4_BITS tick(30*LCD_TIME); regs->PIOA_ODSR |=_RS; // RS=1; tick(30*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(20*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |=((kod &0xF0)); tick(20*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; tick(30*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(20*LCD_TIME); regs->PIOA_ODSR &= 0xffffff0f; tick(1); regs->PIOA_ODSR |=((kod &0x0F)<<4); tick(20*LCD_TIME); regs->PIOA_ODSR &=~_E; // E=0; #endif /*LCD_4_BITS*/ #ifdef LCD_8_BITS tick(3*LCD_TIME); regs->PIOA_ODSR |=_RS; // RS=1; tick(3*LCD_TIME); regs->PIOA_ODSR |=_E; // E=1; tick(2*LCD_TIME); regs->PIOA_ODSR &= 0xffffff00; tick(1); regs->PIOA_ODSR |= kod; tick(2*LCD_TIME); regs->PIOA_ODSR &= ~_E; // E=0; #endif /*LCD_8_BITS*/ } /* lcd_char() */ ... ... ...тормознутость можете сами заметить по 60*LCD_TIME Вопрос - Где же что не правильно? Или есть такое что индикатор не поддерживает этот режим? Так должен - даташит обещает...
  18. С Россией и другими странами что-то оказывается не просто осуществлять доставку. Я поступил иначе, раз я немогу отправить сам, то решил просто выставить эти модули в магазины, и таким образом всем желающим становится проще купить и магазин сам осуществит доставку, у них эта тропинка уже пройдена. Правда любая доставка платная. Да, кстати о том где их уже можно найти ( модуль, или только плату) Сейчас они есть в Космодроме(цены+фото), и в Радиомаге. Пока это единственный способ для других стран, поймите меня правильно, искал способы, не нашел иначе... Все еще ищю, что бы было удобнее. Вот фото с Космодрома, где лучше видно весь модуль: там же можно заказывать и пустые платы. Цены почти те же, что и на сайте. Так что, можете смело заказывать там. :)
  19. по моему это в лоб не рещается причина простая, кернел при распаковке, детектит последние адреса, и распаковывается в конец памяти, таким образом он уже по умолчанию работает с всей памятью. возможно существуют на кернел.орге патчи для такого. но сомниваюсь в этом
  20. там гдето это есть, суть такова что если 9200 не находит не один из способов загрузиться, то он непрерывно шлет на УАРТ символы CCCCC
  21. на компорт бросает символы "с"? - ссссссс... если да, то что то с загрузчиком
  22. от amw - http://code.google.com/u/amwsoft/ вот то что вам нужно http://code.google.com/p/developer-console/
  23. на сколько я помню правило общее, идеальное требование - на каждый пин питания, минимум по 1 ВЧ конденсатору Смысл в том что бы была минимальная длина от пина до конденсатора. Конечно, может есть и другие правила, но я другого не встречал.
  24. у Лактионова большой минус - отсутсвия электроконтроля. второй минус - поршивая шелкография. третий минус - отвратительное лужение. из за того через месяц пады на платах почти не запаиваемые. я на одно своей опытной партии подзалетел из-за него, так как был большой процент брака, из 40шт, минимум 5-8 шт это брак. и если с переходными все ясно, то особенно не понравились междорожковый КЗ. а так да, быстро, и если переходные/расстояния больше чем 0,3,,0,4мм - его можно рассматривать