Обчислюваний перехід
Ви переглядаєте архів форуму.
| обчислюваний перехід |
| Автор: 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