| Автор |
Съобщение |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
 Въпрос за MPLAB
Като компилирам проекта, ми показва постоянно съобщения, че даден регистър не е в посочената банка. И това много често. Проверявам и виждам, че всичко си е ОК. Вече престанах да им обръщам внимание, а и програмите си работят. Да, ама онзи ден бях пропуснал да установя правилните банки, и търсих проблема цял ден, докато го намеря.
Та въпросът ми е следния: Дали това си е бъг на програмата или аз не съм настроил нещо. Защото тази информация с банките ще ми е много полезна ако дава грешките само когато са истински. И ако не може да се оправи, има ли друга развойна среда за асмблер, дето да е по-добра?
|
| Пет Мар 16, 2007 10:44 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Ами аз вече втора години не съм пускал MPLAB не знам какво е събщението сега.
Но едно време просто предупреждаваше че работиш нещо в друга банка да си провериш дали си я сменил.
Накратко събщението беше напомнящо а не за грешка.
|
| Пет Мар 16, 2007 10:49 pm |
|
 |
|
Ки4о
Ранг: Форумен бог
Регистриран на: Съб Юли 22, 2006 9:50 pm Мнения: 1638
|
Преди обръщение към регистър правиш следното-искаш да се обърнеш към PORTA някъде из програмата и да прочетеш съдържанието на порта :
banksel PORTA ;превключва банките
movf PORTA,w
.............
|
| Съб Мар 17, 2007 12:38 am |
|
 |
|
bobyk
Ранг: Ориентиран
Регистриран на: Пон Яну 09, 2006 11:32 am Мнения: 276 Местоположение: Kozloduy
|
|
| Съб Мар 17, 2007 10:34 am |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Проблема е, че дори когато съм избрал правилните банки, пак ми дава, че работя с грешни банки.
|
| Съб Мар 17, 2007 3:48 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Понеже до сега съм работил само с "банкови" на Майкрочип, кажи ми някакви без банки, че ми омръзна само да ги следя. (дано не ти прозвучи смешно, но от скоро се занимавам с контролери)
|
| Съб Мар 17, 2007 3:50 pm |
|
 |
|
Ки4о
Ранг: Форумен бог
Регистриран на: Съб Юли 22, 2006 9:50 pm Мнения: 1638
|
За да не ти ги извежда като съобщение - пишеш:
list p=16F877
TITLE "Главна програма"
Clock_Freq EQU d'20000000'
__CONFIG _CP_OFF & _WDT_OFF & .....
#include <P16F877.INC>
#include <macro.asm>
errorlevel 1
и няма да ти излизат съобщенията за банките
|
| Съб Мар 17, 2007 4:22 pm |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
Да няма да извежда ама ако е забравил някъде да ги цъкне
Atmel 
|
| Съб Мар 17, 2007 4:22 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Неее, не сте познали драги зрители  , просто се преминава на Ц 
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Съб Мар 17, 2007 6:31 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Проблема не е, че ме дразнят съобщенията, а да ми показва само като сгреша банките, защото това си е важна информация. Просто ме интересуваше, дали има някоя опция да коригира това.
|
| Нед Мар 18, 2007 5:33 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Не, няма начин да стане. Тъй като битовете, с които селектираш банката могат да се променят от всяко място в програмата, асемблера няма откъде да знае дали са правилно настроени в момента. И предупреждава да погледнеш. Това е warning, а не грешка. Сигурно ти е време да минаваш на С 
|
| Пон Мар 19, 2007 10:30 am |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Свиквай Zeus! Ако работиш сериозно с пик-овете ще имаш нужда от много Банки, където да си трупаш печалбите
Сега сериозно. Бъркането на банките е един от най-често срещаните проблеми при асемблера на пиковете , но въпреки това в MPLAB-a не е решен и до ден днешен. Причината- предполагам ,че тези които пишат MPLAB-a никога не са програмирали пикове на асемблер  . А и алгоритъма на симулиране в MPLAB-a е малко тъпичък. Симулатора е "умен" колкото пик-а, т.е. това което не го хваща пик-а ,не го хваща и симулатора. Поне за банките е така. Всъщност не се следи програмата на логическо ниво , а само на хардуерно. Ама това е една друга тема....
|
| Сря Мар 21, 2007 3:38 am |
|
 |
|
mndsl
Ранг: Новодошъл
Регистриран на: Вто Май 23, 2006 4:56 pm Мнения: 113 Местоположение: Варна
|
Причината не е в МПЛАБ , то всеки компилатор на асемблер ще направи същото именно защото пишеш на асемблер. Отговорноста за програмата е изцяло оставена на програмиста и то няма друг начин, защото всеки ред от програмата е дефакто инструкция и генерирания HEX файл ще бъде точно такъв какъвто го напишеш. Компилаторът не променя нито ред от кода, както е при езиците от високо ниво. И не очаквайте от компилатор да следи логиката на програмата.
|
| Сря Мар 21, 2007 10:30 am |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Ами МПЛАБ-а освен компилатор е и доста други неща (лаб=лаборатория). И аз лично очаквам от хххMb програма движеща върху xxxxMHz PC да прави нещо повече от това да се преструва на контролер. Като са си оставили архитектурата на пика да куца, поне да бяха компенсирали с маалко по-читав симулатор. 10+ години трябваше да им стигнат. Може би не го оправят щото да могат да си пробутват Ц-то.
|
| Сря Мар 21, 2007 6:29 pm |
|
 |
|
mndsl
Ранг: Новодошъл
Регистриран на: Вто Май 23, 2006 4:56 pm Мнения: 113 Местоположение: Варна
|
1. Говорим за компилатор , не за симулатор, бъркаш понятията
2. Симулатора не може да прави нещо повече освен да се преструва на контролер, щото инъче на компютъра всичко ще е ОК, ама на пика няма да е.
3. И аз очаквам от Windows от xxx MB i za xxx $ да работи както трябва и да не забива... ама тц. 
|
| Сря Мар 21, 2007 7:02 pm |
|
|