N
neoaspilet11
Guest
Привіт всім,
Я отримав цей забавний досвід у поводженні з PCL і PCLATH регістрів ПОС.
У мене величезні таблиці даних у величині 800 елементу пам'яті.Переглянути видання моєї таблиці даних налічує більше 3000 осередків пам'яті.Але я не кодується ще.
Проблема виглядає наступним чином
WREG = 7C; перед входом в таблиці даних
PCLATH = 00h
Таблиця addwf PCL, 1; PCL = PCL ш Address = 0x83
....
....
....
retlw XX; Address = 00FF
retlw YY; Address = 0100
retlw ZZ; Address = 0101
.....
.....
Ви бачите, коли команда ДОДАТИ виконується, PCL = 100h або буфера!MPU просто виконати RESET вектор замість виконання Адреса 0100h.Хе-хе Мені знадобилося 30 хвилин, щоб зрозуміти, що була моя помилка.
Хоча у мене є рішення цієї проблеми шляхом простого поділу таблиці даних з декількох таблиць і маніпулювання Співвідношення які будуть додані до PCL, PCL PCLATH і я все ще є питання.
1.) Хіба це не автоматично, коли PCL переповнення, крім інструкції PCL, PCLATH буде збільшуватися?
2.) Чи є інший спосіб реалізації таблиці, не розділяючи його на декілька таблиць?(Слід зазначити, що значення, яке буде додано до PCL більше 8 біт. Це означає, що відповідні manipualtion PCLATH також має бути зроблено.)
3.) Можна маніпулювати як PCL і PCLATH всього одна інструкція з тільки що доданої вартості на це?
Дякуємо за ваші ідеї.
Я отримав цей забавний досвід у поводженні з PCL і PCLATH регістрів ПОС.
У мене величезні таблиці даних у величині 800 елементу пам'яті.Переглянути видання моєї таблиці даних налічує більше 3000 осередків пам'яті.Але я не кодується ще.
Проблема виглядає наступним чином
WREG = 7C; перед входом в таблиці даних
PCLATH = 00h
Таблиця addwf PCL, 1; PCL = PCL ш Address = 0x83
....
....
....
retlw XX; Address = 00FF
retlw YY; Address = 0100
retlw ZZ; Address = 0101
.....
.....
Ви бачите, коли команда ДОДАТИ виконується, PCL = 100h або буфера!MPU просто виконати RESET вектор замість виконання Адреса 0100h.Хе-хе Мені знадобилося 30 хвилин, щоб зрозуміти, що була моя помилка.
Хоча у мене є рішення цієї проблеми шляхом простого поділу таблиці даних з декількох таблиць і маніпулювання Співвідношення які будуть додані до PCL, PCL PCLATH і я все ще є питання.
1.) Хіба це не автоматично, коли PCL переповнення, крім інструкції PCL, PCLATH буде збільшуватися?
2.) Чи є інший спосіб реалізації таблиці, не розділяючи його на декілька таблиць?(Слід зазначити, що значення, яке буде додано до PCL більше 8 біт. Це означає, що відповідні manipualtion PCLATH також має бути зроблено.)
3.) Можна маніпулювати як PCL і PCLATH всього одна інструкція з тільки що доданої вартості на це?
Дякуємо за ваші ідеї.