|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 9:27 am
| Автор |
Съобщение |
|
kiiid
Ранг: Почетен член
Регистриран на: Съб Сеп 24, 2005 2:00 pm Мнения: 787
|
Ами не знам кое може да ти се види революционно. Аз преди няколко години когато за пръв път ги разучих ми идеше да се плесна по челото с нещо като "леле колко съм изпуснал досега!". Блокчетата могат да се преконфигурат и в движение, краката могат да се закачат навсякъде, а това което се задава като PSoC 3 и PSoC 5 е направо... абе ще видиш като го пуснат скоро. По принцип самото чипче не е нещо кой знае какво обаче комбинацията на чипа със софта към него е ужасяващо привлекателна. Но човек без да си е поиграл малко с него няма как да разбере (повярвай ми това не е обида!). Но аз откакто активно бачкам с тях се сбъсквам с проблема че всички други са ми някак "недовършени". Явно съм се изкривил и съм почнал да мисля по PSoC-ски
А това за прекъсванията стана голяма работа от нищо. Пак казвам прекъсвания има и трябва да се ползват но там където се налага т.е. софта трябва да се планира предварително. Но това го споделих като мое мнение единствено с желание да помогна, а не да давам акъл.
Между другото това което адски ме дразни е именно поведението ако някой каже нещо веднага се намират петима други дето да му кажат колко е тъп и нищо не разбира и т.н. Това е за съжаление най-типично именно в България и аз го установих едва след като минаха години да не живея там.
Обикновено подходът е "аз мисля, че... еди какво си понеже бла-бла...". В нашия случай подхода е "ти ще ме слушаш мене щото си много тъп и още много имаш да учиш!". Усещаш ли разликата? Ти може би да но за съжаление има безброй които няма да я усетят а и не само това но няма да пропуснат да ме наплюят допълнително (това изглежда е нещо по което всички сме специалисти в еднаква степен  )
Аз викам да не се занимаваме вече с тая тема че наистина ще трябва да отиде в графа "спам" скоро 
|
| Чет Апр 23, 2009 12:02 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 Re: трябва ми ....
Е не мога да се сдържа.
и
1. Двете думи - "пикльовци" и "глупости", много остро контрастират с "раздразнението ти от типичното поведение на българските инженери"
2. Забележи, че първите "квалификации" в темата по адрес на труда и знанията на други хора, са твое дело.
3. Термина "пиклювец" е запазена марка на Кольо, признали сме му правата над нея и за да я ползваш дължиш лицензионни такси. Валутата я знаеш.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Чет Апр 23, 2009 2:23 pm |
|
 |
|
Ники
Ранг: Почетен член
Регистриран на: Съб Окт 30, 2004 11:19 pm Мнения: 609
|
С моите начални занимания с PSoC предполагам че реализацията на задачата ще стане с един 24битов брояч, чийто вход се управялява директно от пин, на който се подава измеряемия импулс. Така в брояча имаме точно продължителността на импулса без нужда от корекции, разчитайки се само на точността на опорния генератор.
Няма капчери, няма прекъсвания, дори няма софтуер написан дотук, дизайнера се е погрижил да имплементира брояча. Ако след изброяване на импулса искаме да правим нещо с информацията вече се дописва софтуер за начина по който това да стане.
Пипвал съм и пик и атмел, но се затруднявам даси представя как ще стане реализирането на точно измерване на импулси примерно под 10 микросекунди. За пиковете си спомням че имаше задаване на фронта при който да сработва кяпчера, но само след 16битовите пикове имаше сработване при два различни фронта, т.е. при 8 битовите процесори може би ще се измерва по лесно период, но не и продължителност на импулс.
Любопитно ми е какво мислят по-напредналите колеги, за частта в която се мерят микросекундни импулси.
Едит: Сега се сетих че имаше нещо като външен гейт за Таймер1, но не съм пробвал този вариант и резултата ми е неясен.
|
| Чет Апр 23, 2009 8:52 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
А къде се ползва това мерене ма микросекундни импулси (осен за гърчене на студенти де)?
Иначе тая задачка може да се реши и с D-R-C + ADC.
|
| Чет Апр 23, 2009 11:12 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Измерването на микросекундни интервали изисква просто процесор в който някъде вътре да има N пъти по - висока честота която да брои. Т.е. проблема не в конкретната архитектура а в точността която гоните. На практика със всяка архитектура от последните 10 години може да се направи, въпрос е единствено на достатъчно бърз клок за да се постигне точността която гониш. Дали ще е PSoc или PIC няма голямо значение. Въпроса е да хвърчи на достатъчно висока честота.
Макар че измерването на 1us на практика рядко се прави с контролер. Защото за да постигне човек точност от порядъка на 1%, му трябва процесор с клок на таймерите 100Mhz, т.е. използването на CPLD вече става оправдано.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Чет Апр 23, 2009 11:16 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Интересна тема, всъщност стана ми интересно защото се твърди, че в лицето на PIC ( като един нормален процесор  ) широчината на импулса щяла да се мери софтуерно, а при PSoC хардуерно. С процесор може и софтуерно да се измери широчина на импулса, но ако има Capture модул или крачета с interrupt on change може да се измери и хардуерно. Затова се използва прекъсването, за да може процесора да си върши останалите задачи и само когато се зададе импулс и хардуера го измери, тогава да се товари процесора с четене на резултата от измерването. В това не виждам да има глупости, по-скоро глупост ще е ако ще използваш хардуерен модул на процесора и ще четеш резултата в главната програма. Не че не може, но ако главната програма е от 5 хиляди реда код, ще трябва през 2-3 реда да се слага код, който да проверява дали е дошъл импулс и дали хардуера го е измерил. Инженерите по чужбина може и така да го правят, знам ли, университети всякакви 
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Чет Апр 23, 2009 11:28 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Бе то аз имам странното подозрение, че на въпросния PSoc едва ли има нещо кой знае колко революционно като таймерна периферия. По скоро силата му е в това че можеш да си я слагаш и махаш и да я разнасяш по пиновете.
Иначе всеки един по модерен процесор си има таймерна система която може сама да измери импулса - т.е. абсолютно хардуерно. Въобще в днешно време е модерно да се правят управления на мотори, та оттам таймерите в процесорите са може би най-развитата част от периферията.
Иначе при времена от порядъка на 1us, спокойно можеш да забравиш за софтуерни измервания  Освен ако не разполагаш с PIC на клок 400Мхз, та да постигнеш 1% грешка 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Апр 24, 2009 12:04 am |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Всъщност kiiid е прав в известен смисъл. Прекъсването трябва да се ползва САМО ако събитието е неотложно или е за синхронизация. Ако може да чака - по-добре да си чака реда на опашката.
А и всяко прекъсване си е дефакто многозадачност, което при начинаещите почти задължително води до оплитане на конците. Но как ще се научиш иначе? Мигалка с прекъсване от ТМР0 е къде-къде по-елегантно от циклене на N-брояча. 
|
| Пет Апр 24, 2009 12:09 am |
|
 |
|
kiiid
Ранг: Почетен член
Регистриран на: Съб Сеп 24, 2005 2:00 pm Мнения: 787
|
Е не мога да се сдържа!
Между другото къде точно откри обидата в моите изказвания че трябваше така яростно да ми скочиш? Аз на няколко пъти се опитах да си разясня позицията но винаги я изкривяваш отново за да може да оплюеш? Защо?!?
Пак и за последен път казвам - прекъсванията са нещо много важно но трябва да се използват разумно, а в този конкретен случай дори може и да се избегнат. Не го преиначавай отново, моля! Не е моя вината че не знаеш PSoC. Аз не знам други неща, които ти сигурно знаеш, но за това тук съм доста сигурен.
И отново: хайде стига вече, очевидно е че не съм толкова трениран в тия нападателни спорове колкото ти. Аз съм по същество значително по-добронамерен човек и рядко се впускам в спорове. Просто няма смисъл.
|
| Пет Апр 24, 2009 2:23 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
И като чака на опашаката - какво? Нали като стане готово трябва да сигнализира някак си? Дали ще пулваш флага на прекъсването или ще прекъснеш наистина.... какво значение има, пак ти трябва форма на многозадачност. Въобще хора, аз не мога да се сетя за нещо което да съм проектирал последните 20 години и да не е многозадачно - все има я копчета, я екран, я комуникация някаква, я времена ще мери, я времена ще генерираш. Няма такъв филм като еднозадачна система вече. Така че да се плащат начинаещите с прекъсвания, е все едно да плашите децата си с вилица. По добре е да се научат да я ползват добре, ако и отначало се убодат с нея, вместо после да стават за смях като не знаят да си служат с нея и ядат с ръце. Нещо повече, в нашите университети многозадачността в ембедед системите въобще не се разглежда като нещо фундаментално, а то си точно такова. Учи се ядрото, учи се периферията, казва се - има там едни прекъсвания и примери почти изцяло в линеен код. И толкоз. А многозадачното се оставя като едва ли не нещо имагинерно и сложно, ненужно. Всъщност многзадачността си е начин за мислене и трябва да се изучава и упражнява, защото наистина си е сложно, но задължително. Една съвременна програма на практика се състои от 90% многозадачен код и под 10% чисто линеен (инициализацията). И това е при 90% от приложенията около вас - като почнеш от мобилния телефон и свършиш с мега компютрите. Естествено, че има приложения с чисто линеен код, но те са малко и ще става все по малко. Така, че не плашете начинаещите с прекъсвания - точно обратното - нека си блъскат главите, белким се научат. ето тук- .
Само дето не може да говорим за обида.  И не ти скачам яростно. Щото ако те подхване Кольо, тогава ще видиш какво е то яростно
Просто се опитах да опровергая една позиция която ми се струва грешна (и продължава да ми се струва грешна).
Макар че оня дето зачекна темата сигурно вече и избягал с писъци 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Апр 24, 2009 10:50 am |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Разликата е ,че сам си избираш момента в който да го обработиш. Иначе става едно прескачане и състезаване на прекъсвания. Но може би всичко е въпрос на навик, стил, ситуация. Важното е да работи.
|
| Пет Апр 24, 2009 12:17 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
Май много приказки за нищо.
Осовното, което новаците трябва да научат, е да правят разликата между
прекъсване и отделни задачи.
В кода, обработващ прекъсването, се прави възможно минималното; т.е. колкото
да се подсигури на прекъсваемия код възможостта да свърши работата.
Разпространена грешка е да се вършат разни работи като част от самата
обработка на прекъсването, което разбира се има за резултат драматично
увеличение на латентността. В много случаи може да се мине и с високата
латентност, но от това подходът не става по-малко погрешен, естествено.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Пет Апр 24, 2009 12:53 pm |
|
 |
|
kiiid
Ранг: Почетен член
Регистриран на: Съб Сеп 24, 2005 2:00 pm Мнения: 787
|
 |  |  |  | Цецо написа: И като чака на опашаката - какво? Нали като стане готово трябва да сигнализира някак си? Дали ще пулваш флага на прекъсването или ще прекъснеш наистина.... какво значение има, пак ти трябва форма на многозадачност. Въобще хора, аз не мога да се сетя за нещо което да съм проектирал последните 20 години и да не е многозадачно - все има я копчета, я екран, я комуникация някаква, я времена ще мери, я времена ще генерираш. Няма такъв филм като еднозадачна система вече. Така че да се плащат начинаещите с прекъсвания, е все едно да плашите децата си с вилица. По добре е да се научат да я ползват добре, ако и отначало се убодат с нея, вместо после да стават за смях като не знаят да си служат с нея и ядат с ръце. Нещо повече, в нашите университети многозадачността в ембедед системите въобще не се разглежда като нещо фундаментално, а то си точно такова. Учи се ядрото, учи се периферията, казва се - има там едни прекъсвания и примери почти изцяло в линеен код. И толкоз. А многозадачното се оставя като едва ли не нещо имагинерно и сложно, ненужно. Всъщност многзадачността си е начин за мислене и трябва да се изучава и упражнява, защото наистина си е сложно, но задължително. Една съвременна програма на практика се състои от 90% многозадачен код и под 10% чисто линеен (инициализацията). И това е при 90% от приложенията около вас - като почнеш от мобилния телефон и свършиш с мега компютрите. Естествено, че има приложения с чисто линеен код, но те са малко и ще става все по малко. Така, че не плашете начинаещите с прекъсвания - точно обратното - нека си блъскат главите, белким се научат. ето тук- . Само дето не може да говорим за обида.  И не ти скачам яростно. Щото ако те подхване Кольо, тогава ще видиш какво е то яростно  Просто се опитах да опровергая една позиция която ми се струва грешна (и продължава да ми се струва грешна). Макар че оня дето зачекна темата сигурно вече и избягал с писъци  |  |  |  |  |
Цецо, само една единствена последна забележка от мене. Има значение дали едно прекъсване ще е на една микросекунда или на една секунда. Това дето е на една микросекунда ще ти е само за да обслужваш детектирането по фронт, а другото го ползваш за много неща. С PSoC няма нужда да товариш процесора излишно с това прекъсване, само това дето ти е за всичките задачи е достатъчно. Разгледай го по-подробно, сигурен съм че тогава ще ме разбереш.
А това дето си го дал за пример аз не съм го казал като обида, ако така си го възприел, съжалявам, исках да помогна с по-добро решение
|
| Пет Апр 24, 2009 4:07 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Кой прави прекъсване на микросекунда  Това е лудост
С един малко по съвремен процесор хватката ще е следната - нагласяш си таймера да клока на резолюцията която искаш. Нагласяш два кепчъра да хванат - предния и задния фронт, и втория да генерира прекъсване.
Пускаш системата и си вършиш друга работа. Като дойде прекъсване - четеш резултата от двата кепчъра - разликата е дължината на импулса.
Това го може почти всеки процесор за под 3$, който се сещам. Какво по различно ще направи PSoC-a?
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Апр 24, 2009 4:34 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
Вий нали щяхте да се чепкате за прекъсванията. Какво се върнахте пак към конкретния пример.
Я аз да зачепкам тогава tgi
Винаги препрочитам мненията ти както ревностен християнин библията ама и ти винаги ме изненадваш.
Да разбирам ли че тука не включваш в сметката вложените прекъсвания и разните начини за приоритизация? Освен това когато задачата изисква освен ниска латентност при регистрацията и ниска латентност на реакцията какво правиш тогава?
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
| Пет Апр 24, 2009 4:53 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 0 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|