| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблем с PIC18F452 http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=7552 |
Страница 1 от 1 |
| Автор: | nikiforiv [ Нед Фев 14, 2010 9:56 pm ] |
| Заглавие: | Проблем с PIC18F452 |
Микроконтролера е PIC18F452 Някой знае ли защо това нещо работи само в 0вата страница на програмната памет? При симулация чрез MPLAB SIM няма проблеми, но в действителност контролера увисва ако дадения код не е в 0вата страница. movf PCL, W movf Temp, W rlncf WREG rlncf WREG addwf PCL, f goto Razklonenie_0 ;0 goto Razklonenie_1 ;1 . . . goto Razklonenie_X ;X Започвам да мисля че самия чип е нещо бъгав |
|
| Автор: | optron [ Пон Мар 22, 2010 2:46 pm ] |
| Заглавие: | |
Ако правилно разчитам кода ти, ти искаш да умножиш променливата ТЕМП по 4, след което я изпозвваш за изчислено ГОТО. Виждам следните недостатъци: Първата инструкция ми се вижда безсмислена, защото стойността от Темп ще ти измести стойността от програмния брояч и на практика ти не работиш с него. Допускам, че имаш печатна грешка там, погледни си. Щом умножиш променливата по 4 и я прибавиш към програмния брояч, това означава, че ще се избира всяко четвърто разклонение от таблицата ти. Това донякъде ми изглежда нелогично, тъй като останалите три позиции се прескачат и са неизползваеми, което от своя страна е прахосничество на програмна памет. Конкретно за таблиците има отделна статия в сайта на Микрочип. Не знам дали може да се прави рлнсф върху работния регистър. Пльосни стойността му в някой регистър, завърти я и я зареди обратно. А по въпроса ти: Първо трябва да настроиш правилно старшия байт на програмния брояч и тогава можеш да правиш изчислени ГОТО-та. Прочети за директивите pagesel и pageselw. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|