реклама на сайте
подробности

 
 
> Hi-Tech PRO PIC10/12/16 V9.65PL1 & PCLATH
ViKo
сообщение Dec 3 2009, 14:45
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Что сделать, чтобы компилятор не сбрасывал биты выбора страниц памяти в PCLATH там, где не надо (они и так всегда сброшены). Пример его работы:

Код
  0009    120A     BCF 0xa, 0x4
  000A    118A     BCF 0xa, 0x3
  000B    27F4     CALL 0x7f4
  000C    120A     BCF 0xa, 0x4
  000D    118A     BCF 0xa, 0x3
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Mar 19 2010, 08:43
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А вот гляньте на следующий код! Та же программа, что демонстрировал вначале, была слегка модернизирована. Компилятор, правда, 9.70. Но, думаю, дело не в нем, а неком "стечении обстоятельств", позволяющих компилятору решить, что биты выбора страниц "ператрахивать" не надо.
Код
      Out = 0;  Delay10K(Time);    // 0.05 .. 0.4 s
   036    1105     BCF 0x5, 0x2
   037    0825     MOVF 0x25, W
   038    23F2     CALL 0x3f2
95:                      Out = 1;  Delay10K(30);    // 0.3 s
   039    1505     BSF 0x5, 0x2
   03A    301E     MOVLW 0x1e
   03B    23F2     CALL 0x3f2
96:                      // Out = 0;  Delay10K(20);    // 0.2 s
97:                      Out = 0;  Delay10K(Time);    // 0.05 .. 0.4 s
   03C    1105     BCF 0x5, 0x2
   03D    0825     MOVF 0x25, W
   03E    23F2     CALL 0x3f2
98:                      Out = 1;  Delay10K(30);    // 0.3 s
   03F    1505     BSF 0x5, 0x2
   040    301E     MOVLW 0x1e
   041    23F2     CALL 0x3f2
99:                      // Out = 0;  Delay10K(20);    // 0.2 s
100:                     Out = 0;  Delay10K(Time);    // 0.05 .. 0.4 s
   042    1105     BCF 0x5, 0x2
   043    0825     MOVF 0x25, W
   044    23F2     CALL 0x3f2
101:                     Out = 1;  Delay10K(30);    // 0.3 s
   045    1505     BSF 0x5, 0x2
   046    301E     MOVLW 0x1e
   047    23F2     CALL 0x3f2

В-общем, все не так просто. Найти бы эти "обстоятельства"...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016