Обчислюваний перехід

Ви переглядаєте архів форуму.

обчислюваний перехід
Автор: EUDENY () Дата: 06/03/2006 18:57

Здрастуйте. у чому помилка. = 16F84 = . MOVF SCHETCHIK,0 BSF PCLATH,0 CALL NEXT BCF PCLATH,0 . . ORG 0X100 NEXT ADDWF PCL,F DT .97,.122,.149.

якщо число SCHETCHIK = 0, з таблиці береться число .97. якщо SCHETCHIK = 1 то число .122 не береться. ЧОМУ.

Re: обчислюваний перехід
Автор: nicpic () Дата: 06/03/2006 20:02

retlw .97 retlw .122 retlw .149

(-) Ее. А різниця?
Автор: Sakura-chan () Дата: 06/03/2006 20:16

Не бачу різниці. Хіба DT не компилується у послідовність RETLW?

До речі, у мене був дуже дивний схожий глюк: Іноді таблиця не потрапляла толі в HEX, то її програматор не прошивав. Допомогло приміщення після таблиці шматочка коду.

Сумний світ! Навіть коли розцвітають вишні. Навіть тоді. . Ісса (1768-1827)

А що береться? (-)
Автор: back () Дата: 06/03/2006 21:49

Re: обчислюваний перехід
Автор: AZMaster () Дата: 06/03/2006 21:56

Будь-яка операційна система є ні що інше, як побічний продукт у створенні додатків. :-\

Re: обчислюваний перехід
Автор: EUDENY () Дата: 07/03/2006 08:52

(+) Ось і різниця.
Автор: nicpic () Дата: 07/03/2006 13:07

От і різниця, бо мене соромити почали, а я червоніти.

Наприклад, компілятор видає помилку: Error[108] C:\PROJECTS\PIC18F2550\PROJECT1\ PROJECT1 .ASM 295 : Illegal character ( )

Дивишся, а з кодом усе гаразд.

Ще гірше, коли компіляція пройшла успішно, а простенька програма не правильно працює. Ну і як, та просто компілятор пропустив один або кілька рядків із вихідного.

Така помилка виявляється при копіюванні тексту з іншого вікна через кліпборд. Спробуйте, скопіюйте, з вікна Disassembly Listing кілька рядків робочого коду, заберіть зайвий текст і відкомпілюйте.

В результаті компілятор може видати помилку або пропустити кілька рядків робочого коду.

Цю помилку можна усунути, якщо зібрати в один рядок вставлені рядки з буфера обмінника і ще один рядок, що йде за ними без пробілів між ним, а потім розставити ці рядки на місце.

Re: обчислюваний перехід
Автор: AZMaster () Дата: 18/03/2006 17:20

Ще один приклад роботи з таблицями. Цей код працює в будь-якому місці програми, навіть якщо таблиця знаходиться на стику 0x700-0x800. Потрібно лише забороняти переривання, якщо вони використовуються, на момент зміни PCLATH і переходів на. Інакше може відлетіти.

Будь-яка операційна система є ні що інше, як побічний продукт у створенні додатків. :-\

Re: обчислюваний перехід
Автор: Greg () Дата: 18/03/2006 18:11

Потрібно лише забороняти переривання, > якщо вони використовуються, на момент зміни PCLATH та переходів на. > Інакше може відлетіти.

хто може відлетіти? і куди?

Re: обчислюваний перехід
Автор: AZMaster () Дата: 18/03/2006 18:46

> хто може відлетіти? > і куди?

Програма, звісно, ​​полетіти може. А ви про що подумали?

Можна зробити так:

Будь-яка операційна система є ні що інше, як побічний продукт у створенні додатків. :-\

Відправлення відредагованого (18/03/2006 18:48)

Re: обчислюваний перехід
Автор: Greg () Дата: 18/03/2006 23:22

> Greg написав: > > > хто може відлетіти? > > і куди? > > Програма, звісно, ​​полетіти може. > А ви про що подумали?

Звичайно програма "летіти може". тільки де і чому. Що там такого особливого в наведеному вами фрагменті?

загалом на згадку приходить тільки один випадок, коли переривання треба забороняти - при записі EEPROM