| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблем с C18 компилатора на microchip. http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=7184 |
Страница 1 от 1 |
| Автор: | Цецо [ Съб Окт 03, 2009 10:04 am ] |
| Заглавие: | |
кой процесор е това? |
|
| Автор: | edi [ Съб Окт 03, 2009 10:20 am ] | |||||||||
| Заглавие: | ||||||||||
Дам забравих го това 18F452. |
||||||||||
| Автор: | Цецо [ Съб Окт 03, 2009 5:08 pm ] |
| Заглавие: | |
да не е някой от сбърканите ревижъни? Прочети му внимателно ератата. А и точно това поколение ядра имаха яд с бързите прекъсвания. |
|
| Автор: | Edesign [ Съб Окт 03, 2009 7:52 pm ] |
| Заглавие: | |
Как правиш симулацията с дебъгера или софтуерно с мплаба? Ако е софтуерно как го правиш? Използваш Set PC at cursor или стартираш програмата отначало и чакаш да спре на брейк поинта? Ако използваш Set PC at cursor то трябва да го сложиш на най-горния ред иначе променливите няма да са конфигурирани и ще имат случайна стойност и оттам може би идва проблема ти. |
|
| Автор: | relsys [ Съб Окт 03, 2009 11:23 pm ] |
| Заглавие: | |
В sonsivri.com има последната версия. |
|
| Автор: | Цецо [ Нед Окт 04, 2009 10:32 am ] |
| Заглавие: | |
Точно с по старите версии на ядрото 452 съм имал подобни проблеми. И в ератата си го пишеше, но при мен май се случваше като мина във втората половина на паметта и направя TBL инструкция. Процесора хващаше нанякъде самоволно и айде у киреча. Но после го оправиха точно тоя бъг, ама знам ли ти на кой кристал си попаднал. Затова ти казвам, виж си ревизията и внимателно изчети ератата. Имаха някакви ядове тия ядра, затова и ги спряха. Щото както го описваш, не ми мяза да е софтуерно. Другия вариант е в самото прекъсване да си помазваш стека, но предполагам това си го проверил. |
|
| Автор: | fan [ Нед Окт 04, 2009 1:48 pm ] |
| Заглавие: | |
Цецо, вие тука групичката да не сте случайно шамани? Ами то почти нищо освен въпрос - нито сорс нито разяснение относно това дали е хардуерен дебъг или симулация и пускане парче по парче на подробности?! Само ще продължите да си изстисквате от пръстите кой каквото се сети и я стане така я не! Дано юнака се сети и даде всичко необходимо щото само приказки... |
|
| Автор: | Цецо [ Нед Окт 04, 2009 2:00 pm ] |
| Заглавие: | |
Абе вярно, аз сега се загледах, че има сложени два брекпоинта. А 452 през ICD2 мисля че не позволяваше повече от един активен. Може вярно да е в симулатора. Е ако е така - 99% става въпрос за програмистка грешка Ама аз там по-добре да не се бъркам, щото симулатора на МПЛАБ, ползвам единствено и само за мерене на времена... |
|
| Автор: | edi [ Нед Окт 04, 2009 11:31 pm ] |
| Заглавие: | |
Правя симулацията софтуерно в MPLAB + PROTEUS VSM 7.3 .Всеки път стартирам от начало програмата и чакам да спре на бреик поинта. Когато спра прекъсванията преди if(newrpg!=oldrpg) и ги пусна след това всичко е ОК, но при условие, че трябва да генерирам ШИМ сигнал на няколко изхода е невъзможно така да се работи. Все си мисля, че когато настъпи прекъсване след изпълението на if(newrpg!=oldrpg) в Стека се записва адреса на следващата инстукция извлечена по време на ifa(т.е. тази която трябва да се изпълни ако не настъпи прекъсване), а съответно ако тя е необходимо да се прескочи на база резултат от сравнението се получава пободно нещо, поне аз така си го обяснявам, т.к. в С един ред не е един ред в асемблер. Така или иначе ще започна отначало да мисля целия алгоритъм.Устройството трябва да генерира ШИМ с 25 степени на коефицента на запълване, честота 1KHz, в същото време да се управлява с RPG и да се визуализира инфо за всеки управляван канал на LCD с HD44780. Ако премахна приоритета на прекъсванията дали нещо ще се промени според вас? |
|
| Автор: | ¶ [ Пон Окт 05, 2009 6:02 pm ] |
| Заглавие: | |
Ами най-простото е да изпробваш симулацията само в MPLAB, отделно можеш да пробваш да смениш процесора, за да провериш дали не е проблема в симулацията само на този процесор, можеш и да дадеш View/Dissambly Listing и да погледнеш около реда който те интересува какво точно се случва. Като компилираш задай на компилатора да не оптимизира нещата, т.е. задай debug опцията. Ако променливите които сравняваш са 8-битови можеш и да имаш проблеми, ако опцията enable integer promotion не е активна ( прочети хелпа за тази опция, там е обяснено в детайли какво се случва ) |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|