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

 
 
> 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
Ответов
Herz
сообщение Dec 3 2009, 19:10
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



А в чём проблема?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 4 2009, 09:03
Сообщение #3


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

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



Цитата(Herz @ Dec 3 2009, 21:10) *
А в чём проблема?

Проблем нет, просто испытываю дискомфорт, изучая код, созданный компилятором. Показываю более полный пример - исходник и результат:

Код
      Out = 0;  Delay10K(30);    // 0.3 s
      Out = 1;  Delay10K(50);    // 0.5 s
      Out = 0;  Delay10K(30);    // 0.3 s
      Out = 1;  Delay10K(50);    // 0.5 s
      Out = 0;  Delay10K(30);    // 0.3 s
      Out = 1;  Delay10K(50);    // 0.5 s


Код
61:                      Out = 0;  Delay10K(30);    // 0.3 s
  0027    1008     BCF 0x8, 0
  0028    301E     MOVLW 0x1e
  0029    120A     BCF 0xa, 0x4
  002A    118A     BCF 0xa, 0x3
  002B    27F3     CALL 0x7f3
62:                      Out = 1;  Delay10K(50);    // 0.5 s
  002C    1408     BSF 0x8, 0
  002D    3032     MOVLW 0x32
  002E    120A     BCF 0xa, 0x4
  002F    118A     BCF 0xa, 0x3
  0030    27F3     CALL 0x7f3
63:                      Out = 0;  Delay10K(30);    // 0.3 s
  0031    1008     BCF 0x8, 0
  0032    301E     MOVLW 0x1e
  0033    120A     BCF 0xa, 0x4
  0034    118A     BCF 0xa, 0x3
  0035    27F3     CALL 0x7f3
64:                      Out = 1;  Delay10K(50);    // 0.5 s
  0036    1408     BSF 0x8, 0
  0037    3032     MOVLW 0x32
  0038    120A     BCF 0xa, 0x4
  0039    118A     BCF 0xa, 0x3
  003A    27F3     CALL 0x7f3
65:                      Out = 0;  Delay10K(30);    // 0.3 s
  003B    1008     BCF 0x8, 0
  003C    301E     MOVLW 0x1e
  003D    120A     BCF 0xa, 0x4
  003E    118A     BCF 0xa, 0x3
  003F    27F3     CALL 0x7f3
66:                      Out = 1;  Delay10K(50);    // 0.5 s
  0040    1408     BSF 0x8, 0
  0041    3032     MOVLW 0x32
  0042    120A     BCF 0xa, 0x4
  0043    118A     BCF 0xa, 0x3
  0044    27F3     CALL 0x7f3


Когда я писал на ассемблере, я выбирал страницы по мере необходимости. А тут весь код в одной странице, зачем же "перетрахивать" ненужные биты? И памяти жалко, и времени...
Go to the top of the page
 
+Quote Post
Herz
сообщение Dec 4 2009, 09:18
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(ViKo @ Dec 4 2009, 11:03) *
Проблем нет, просто испытываю дискомфорт, изучая код, созданный компилятором. Показываю более полный пример - исходник и результат:

Код
    ...
         0044    27F3  CALL 0x7f3


Когда я писал на ассемблере, я выбирал страницы по мере необходимости. А тут весь код в одной странице, зачем же "перетрахивать" ненужные биты? И памяти жалко, и времени...

Не стоит их жалеть, ведь, как Вы сами сказали, проблем нет и на производительности (как я понимаю) это не сказывается. Тем более, что программные задержки по типу ваших уж никак примером эффективности служить не могут - в них потеряете больше... Кроме того, Вы уверены что при вызове функции не происходит переход на другую страницу? Где находится 0x7f3 ?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:22
Рейтинг@Mail.ru


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