Jump to content

    

legotron

Свой
  • Posts

    230
  • Joined

  • Last visited

Everything posted by legotron


  1. Подсажите пожалуйста, как будет выглядеть правильный вариант схемы, которая раз и навсегда защелкнет триггер из 0 -> 1 по фронту принципиально асинхронного сигнала? Или у меня вообще подход неправильный, я так и не понял..
  2. Ну не знаю, не встречал я еще триггеров в 1-м состоянии при включении. (согласен, может быть, но у меня все триггера во всех схемах по умолчанию в нуле) В данной схеме 1 выставляется сразу и на симуляции и в железе, поставлю gnd на D-вход и будет на Q ноль.
  3. Доброго времени суток! Altera, Quartus Schematic. Хочу заставить работать следующюю схему: sig_in - любой асинхронный сигнал (например _WR) Проблема заключается в том, что если убрать reset_sig, этот триггер переносит 1(vcc) безо всякого sig_in. Стоит добавить любой reset_sig и 1 переносится по фронту sig_in. Это результат какой-то оптимизации? Как заставить правильно работать эту схему, если принципиально нет никакого reset_sig?
  4. Доброго времени суток! У меня есть некоторые недопонимания связанные с симуляцией в Quartus. Проблема в следующем: Собрал счетчик на триггерах, подал на него частоту 160МГц (Cyclone I) и собирал поделенные частоты (не использовал стандартный счетчик чтобы получить вдобавок частоты с фазой 90 градусов). схема: При симмуляции наблюдал: Налицо "разъехавшиеся в мясо" фронты. В реальном железе картина идеальная, до 80 МГц я наблюдал на осцилле, с фронтами все в порядке, как и должно быть. Почему симмуляция сочиняет такую ерунду с задержками? В чем мое недопонимание? :) P.S. При использовании LPM_COUNTER c фронтами на симуляции все в порядке.
  5. Fatal Error

    я лицензию и ставил. Придется мне наверно сносить винду :( поскольку как я не чистил реестр, ничего не помогло... а на другой машине, где раньше не стоял иар, все прекрасно заработало.
  6. Fatal Error

    Доброго времени суток! Возникла следующая проблема: При попытке дебага с помощью Jtag ICE mkII в IAR AVR 5.11B стало возникать сообщение об ошибке: Месяц назад работал, все было нормально, иар вылеченный... после отпуска вернулся - такая шляпа. попытки переустановить иар не помогли, правда думаю, что не глубоко чистил его корни в реестре. Что мне предпринять?
  7. я не хочу чтобы результаты переносились в wave-file... я хочу чтобы репорт обновился и содержал пины 2-го файла который я устанавливую как основной для симуляции, а в репорте упорно содержаться пины старого waveform-a, когда тот не установлен в качестве источника для симуляции...
  8. Доброго всем времени суток! Возникла проблема, похожая на проблему данного топика, только предыдущее решение не помогает... Проблема в следующем: Необходимо просимулировать работу одного блока *.bdf в составет top-level *.bdf. Создаю свой wave-file, выбираю в Assignments -> Settings -> Simulator -> Simulator input этот файл. После симуляции в result выводятся старые output-ы в состоянии XXX. Есть небольшое подозрение, что при сосдании второго wave-файла я использую не пины, а входы/выходы блока: sig_gen:inst1|clk sig_gen:inst1|half_period sig_gen:inst1|sig В чем может быть проблема?
  9. Спасибо огромное за оперативную подсказку!
  10. Доброго времени суток! Прошу прощения за вопрос, который скорее всего уже не раз вставал... просто сложно сформулировать поиск. Вопрос в следующем: Как в Quartus-e перетащить назначенные pin-ы из одного проекта в другой? Очевидного способа типа Save/Load я не нашел.. может плохо искал. подскажите. Спасибо!
  11. IAR Visual State

    Доброго времени суток! Извиняюсь, если поместил тему не в том разделе Кто пользуется VS, подскажите: возникает следующая ошибка при верификации проекта: [b]Unsupported design elements: (Error) The feature 'Arrays and array indexing' used in the assignment 'CONTROL_REG[addr] = an_char'[/b] причина - выражение в Action Expression: CONTROL_REG[addr] = an_char Вопрос: Может я где-то галочку не поставил? :) Или правда такое свойство не поддерживается? :( Спасибо!
  12. Доброго времени суток! Уважаемые, возник вопрос использования ByteBlasterII на ноутбуке без LPT. Существуют ли уже готовые переходники c USB или PCMCI на LPT? чтобы полноценно работать с Quartus. Может стоит приобрести док-станцию? Будет ли работать порт полноценно на ней? Ноутбук IBM T61. Спасибо!
  13. Добрый день! Помогите пожалуйста обладатели лицензионного Keil 166 версии выше 5.0. Проблема в том, что моя версия 4.27 не поддерживает "inline asm with MAC", а библиотека скомпиленная в поздней демо версии отказывается линковаться в крякнутую старую... Короче надо в скомпилить библиотеку лицензионным компилятором любой версии выше 5.0... mailto:legotronDOGmail.ru Заранее спасибо всем, кто откликнется :) dsp.rar
  14. Добрый день! Target XC167 Compiler Keil uc-GUI 3.98 Нужен совет по использованию Widget-ов и WM. Проблема заключается в том, что не удается их отобразить на экране. Да и вообще, когда я компилирую библиотеку с поддержкой WM #define GUI_WINSUPPORT 1 /* Window manager package available */ перестает работать то, что работало с выключенным WM: #include "GUI.H" #include "MY_XC16X.h" #include "BUTTON.h" #include <stdlib.h> /* For malloc & free funcs */ BUTTON_Handle hButton; unsigned char mempool[0xFE]; void main(void) { init_mempool (mempool, sizeof (mempool)); GUI_Init(); GUI_SetTextMode(GUI_TM_TRANS); GUI_SetDrawMode(GUI_DM_NORMAL); GUI_SetTextStyle(GUI_TS_NORMAL); GUI_Clear(); GUI_DispString("Keil C166 compiler v 4.27"); while(1); } GUIConf.h у меня такой: #ifndef GUICONF_H #define GUICONF_H #include <stdlib.h> /* For malloc & free funcs */ #define GUI_OS (0) /* Compile with multitasking support */ #define GUI_SUPPORT_TOUCH (0) /* Support a touch screen (req. win-manager) */ #define GUI_SUPPORT_MOUSE (0) /* Support a mouse */ #define GUI_SUPPORT_UNICODE (1) /* Support mixed ASCII/UNICODE strings */ #define GUI_DEFAULT_FONT &GUI_Font6x8 //#define GUI_BLOCK_ALIGN 1 #define GUI_ALLOC_SIZE 1000 /* Size of dynamic memory ... For WM and memory devices*/ #define GUI_HMEM void * #define GUI_ALLOC_ALLOC(Size) malloc(Size) #define GUI_ALLOC_FREE(pMem) free(pMem) #define GUI_ALLOC_H2P(hMem) hMem #define GUI_ALLOC_GETMAXSIZE() 10000 /********************************************************************* * * Configuration of available packages */ #define GUI_WINSUPPORT 1 /* Window manager package available */ #define GUI_SUPPORT_MEMDEV 0 /* Memory devices available */ #define GUI_SUPPORT_AA 1 /* Anti aliasing available */ #define GUI_SUPPORT_ROTATION 0 #define GUI_SUPPORT_ARABIC 0 #define LCD_MIRROR_X (0) /* If active: X -> -X */ #define LCD_MIRROR_Y (0) /* If active: Y -> -Y */ #endif /* Avoid multiple inclusion */ Вообщем переназначил ALLOC макросы своими родными функциями для работы с динамической памятью... ВОПРОС почему не работает функция GUI_DispString("Keil C166 compiler v 4.27"); ? Покапался в дебаге... Функция GUI_DispString вызывает функцию GUI__DispLine в которой как раз имеется условная компиляция GUI_WINSUPPORT и вызов фунции WM__InitIVRSearch через макрос WM_ITERATE_START(&r) void GUI__DispLine(const char GUI_UNI_PTR *s, int MaxNumChars, const GUI_RECT* pr) { GUI_RECT r; #if GUI_SUPPORT_ROTATION if (GUI_pLCD_APIList) { #if GUI_WINSUPPORT WM_ITERATE_START(NULL) { #endif /* Do the actual drawing via routine call. */ _DispLine(s, MaxNumChars, &r); #if GUI_WINSUPPORT } WM_ITERATE_END(); #endif } else #endif { r = *pr; #if GUI_WINSUPPORT WM_ADDORG(r.x0, r.y0); WM_ADDORG(r.x1, r.y1); WM_ITERATE_START(&r) { #endif GUI_Context.DispPosX = r.x0; GUI_Context.DispPosY = r.y0; /* Do the actual drawing via routine call. */ _DispLine(s, MaxNumChars, &r); #if GUI_WINSUPPORT } WM_ITERATE_END(); WM_SUBORG(GUI_Context.DispPosX, GUI_Context.DispPosY); #endif } } В этой функции меня пугает указатель pAWin который после присвоения WM_H2P(GUI_Context.hAWin) содержит совершенно безобразный адрес (явно где-то не инициализирован какой-то указатель...) int WM__InitIVRSearch(const GUI_RECT* pMaxRect) { GUI_RECT r; WM_Obj* pAWin; GUI_ASSERT_LOCK(); /* GUI_LOCK must have been "called" before entering this (normally done indrawing routine) */ /* If WM is not active -> nothing to do, leave cliprect alone */ if (WM_IsActive==0) { WM__ActivateClipRect(); return 1; } /* If we entered multiple times, leave Cliprect alone */ if (++_ClipContext.EntranceCnt > 1) return 1; pAWin = WM_H2P(GUI_Context.hAWin); _ClipContext.Cnt = -1; /* When using callback mechanism, it is legal to reduce drawing area to the invalid area ! */ if (WM__PaintCallbackCnt) { WM__GetInvalidRectAbs(pAWin, &r); } else { /* Not using callback mechanism, therefor allow entire rectangle */ if (pAWin->Status & WM_SF_ISVIS) { r = pAWin->Rect; } else { --_ClipContext.EntranceCnt; return 0; /* window is not even visible ! */ } } /* If the drawing routine has specified a rectangle, use it to reduce the rectangle */ if (pMaxRect) { GUI__IntersectRect(&r, pMaxRect); } /* If user has reduced the cliprect size, reduce the rectangle */ if (GUI_Context.WM__pUserClipRect) { WM_Obj* pWin = pAWin; GUI_RECT rUser = *(GUI_Context.WM__pUserClipRect); #if WM_SUPPORT_TRANSPARENCY if (WM__hATransWindow) { pWin = WM_H2P(WM__hATransWindow); } #endif WM__Client2Screen(pWin, &rUser); GUI__IntersectRect(&r, &rUser); } /* For transparent windows, we need to further reduce the rectangle */ #if WM_SUPPORT_TRANSPARENCY if (WM__hATransWindow) { if (WM__ClipAtParentBorders(&r, WM__hATransWindow) == 0) { --_ClipContext.EntranceCnt; return 0; /* Nothing to draw */ } } #endif /* Iterate over all ancestors and clip at their borders. If there is no visible part, we are done */ if (WM__ClipAtParentBorders(&r, GUI_Context.hAWin) == 0) { --_ClipContext.EntranceCnt; return 0; /* Nothing to draw */ } /* Store the rectangle and find the first rectangle of the area */ _ClipContext.ClientRect = r; return WM__GetNextIVR(); } ИМХО Беда НЕобъектного написания огромных сложных программ/библиотек приводит к тому, что забыл какую-то мелкую функцию вызвать и получаешь плавающие указатели, причем есть в этой библиотеки и вызовы ф-ций по НЕинициализированным указателям.... ИМХО я против больших программ без классов! Вообщем подскажите, может я чего-то забыл инициализировать? :) Спасибо!
  15. Какой конкретно ЖКИ собираетесь использовать?
  16. Какую графику хотим? (текст, картинки, видео :))
  17. Еще полчасика после поста посидел, покапался и нашел... Короче проблема была такая: переменная GUI_MoveRTL (я так подозреваю right to left) болталась без инициализации... ну и конечно влияла на то, по-еврейски писать или нет :) Пока я думаю что это косяк... т.к. нашел присвоение этой переменной значений тока в GUI__Arabic. который у меня исключен из компиляции GUI_SUPPORT_ARABIC = 0... Короче занулил GUI_MoveRTL и с концами.... если кто-нить подскажет что я неправ буду рад, а то не хочется время терять из-за таких вещей :) Насчет ГУЯ посмотри на ftp... если не найдешь залью на мыло... :)
  18. Добрый день! Столкнулся с проблемкой... функция GUI_DispStringAt("Hello world",100,100); выводит примерно следующее: dlrow olleH :) GUI_SetTextMode(GUI_TM_NORMAL); GUI_SetDrawMode(GUI_DM_NORMAL); GUI_SetTextStyle(GUI_TS_NORMAL); ни одно из этих действий не помогает :) В чем может быть дело? У меня версия uC-GUI 3.98 а мануал 3.26... Не знаете существует ли более новый в свободном плавании?
  19. Да действительно неплохая маленькая системка... проста в освоении в дебаггер встроена (tasklist), кооперативное или round-robin планирование... и ко всему в довесок совсем бесплатная. :) ИМХО... зачем лепить своё подобие РТОС, если их итак как грязи (ну разве что экономия денег при серьезном подходе, хотя сомневаюсь что вам удастся превзойти показатель цена/качество/кол-во затраченных часов) ИМХО... пописать ОС хорошая тренировка в программировании и это просто интересно но не более... А все-таки рекомендую RTX-Tiny именно для Keila... Захотите расширится RTX-Full или ARTX... придут на смену. правда я их пока еще не нашел нигде :) попутно если у кого есть... дайте знать :)
  20. А что посоветуете по поводу подстройки "налету" частоты среза фильтра? А у БИХ могут быть неравномерными?
  21. Если не фильтровать совсем, то получится так: я показываю через 20 мс (к примеру), через 1с значение меняется скачком(тоже возможно) как следствие стрелка переместится скачком, или я неправильно вас понял?
  22. У меня стрелка нарисованная - её надо медленно двигать по пикселам иначе некрасиво будет!!! :) Насчет кратности 8/16 спасибо, я в курсе :) Тока у меня DSP-сопроцессор. Могу и float делить - не убудет :) :) :)
  23. Ситуация такая: значения приходят через какой-то период(вполне определенный). скажем 500-1000 мс. А скорость движения стрелки ограничена эргономическими соображениями(чтобы не слишком быстро скакала). Refresh стрелки планирую производить либо по таймеру, либо асинхронно по завершению отрисовки(у меня контроллер ЖК с буфером). Ксатати тоже пока не знаю, что лучше с точки зрения работы ОС. Ну вот, и мне необходимо сглаженно двигать эту стрелку(интерполировать частота refresha на порядок больше частоты поступления данных). И хотелось бы узнать как это обычно осуществляется на практике?
  24. Добрый день! Подскажите пожалуйста, кто имел опыт работы с индикацией параметров на LCD. Ворос заключается в том, как сгладить движение стрелки(на примере... можно и не тока стрелки)? Есть 3 условия: 1 - скорость отображения изменения параметра не должна превышать X [ед/с] 2 - скорость обновления показа не должна быть меньше Y [fps] 3 - скорость поступления пар-ра Z [отсч/с] Есть ли наработки по таким вещам? Пока я думаю собрать цифровой либо интеполятор либо ресемплер, а потом ФНЧ и поставить. (а может и наоборот :) ) Попутный вопрос, если фильтры делать для них надо коэфф. жестко считать, а если X,Y,Z параметры необходимо менять динамически? А если пар-р Z случайная величина как быть? Да и Y может гулять... Заранее спасибо! Любая литература или совет будет мной очень приветствоваться :)
  25. uC/OS-II

    Думаю Вас заинтересует эта страница: http://electronix.ru/forum/index.php?act=S...134&t=30124 С уважением, Legotron А я интересовался данной штукой.... и так к ней подходил и сяк (естественно проблема в написании своего драйвера)... потом плюнул и написал свою GUI, деревянную (фигуры, AA, текст), зато полностью объектную, от чего жутко кайфую :) Пока мне хватает!