Глюк 18f252

Hello All!

Имеется следующий глюк.

При прерывании в дивайсе (часах) на пике 18F252 от таймера2 сохраняется контекст в ячейках. Регистр выбора банка установлен в 1 и в 1-й странице находятся ячейки для контекста. Регистр выбора банка задается до открытия прерываний и более нигде в программе не изменяется. Программа безбожно глючит, выполняя произвольные действия. Если ячейки для контекста перевести в 0 страницу, все работает как часы. Рассмотрение листинга показывает, что бит выбора текущего/нулевого банка в командах генерируется правильно. В чем дело?

Anatoly

Reply to
Anatoly Mashanov
Loading thread data ...

AM> При прерывании в дивайсе (часах) на пике 18F252 от таймера2 сохраняется AM> контекст в ячейках. Регистр выбора банка установлен в 1 и в 1-й странице AM> находятся ячейки для контекста. Регистр выбора банка задается до открытия AM> прерываний и более нигде в программе не изменяется. Программа безбожно глючит, AM> выполняя произвольные действия. Если ячейки для контекста перевести в 0 AM> страницу, все работает как часы. Рассмотрение листинга показывает, что бит AM> выбора текущего/нулевого банка в командах генерируется правильно. В чем дело?

Не включены ли у тебя разноуровневые (по приоритетности) прерывания? Можешь проанализировать флаги переполнений (вверх и вниз) стека и пр.? Посмотри свойства BSR - в каком случае он обнуляется. И нет ли "перехлестов" с работой по BSR и по "A" - сквозному доступу?

Reply to
Rifkat Abdulin

Здраствуйте Anatoly,

*17.04.2004* *21:05:58* Вы писали в *RU.EMBEDDED* сообщение к *All* о *"Глюк 18f252"*.

AM> При прерывании в дивайсе (часах) на пике 18F252 от таймера2 сохраняется AM> контекст в ячейках. Регистр выбора банка установлен в 1 и в 1-й странице AM> находятся ячейки для контекста. Регистр выбора банка задается до открытия AM> прерываний и более нигде в программе не изменяется.

Может он портится при восстановлении контекста? Hа ISR посмотреть бы...

С уважением, Den

Reply to
Den Y. Borisov

RA>> безбожно глючит, RA>> Hе включены ли у тебя разноуровневые (по приоритетности) прерывания? AM> Hет. Единственное прерывание от таймера 2. Контекст сохраняется командами movff RA>> Можешь проанализировать флаги переполнений (вверх и вниз) стека и AM> Это идея. RA>> Посмотри свойства BSR - в каком случае он обнуляется. И нет AM> Hикогда не обнуляется и всегда стоит в 1. RA>> ли "перехлестов" с работой по BSR и по "A" - сквозному доступу? AM> Hе понял.

Ты к SFR как обращаешься - через биты BSR или через Accsess Bank?

Reply to
Rifkat Abdulin

Hello Rifkat!

19 Apr 04 09:38, you wrote to me:

RA> безбожно глючит, RA> Hе включены ли у тебя разноуровневые (по приоритетности) прерывания? Hет. Единственное прерывание от таймера 2. Контекст сохраняется командами movff RA> Можешь проанализировать флаги переполнений (вверх и вниз) стека и Это идея. RA> Посмотри свойства BSR - в каком случае он обнуляется. И нет Hикогда не обнуляется и всегда стоит в 1. RA> ли "перехлестов" с работой по BSR и по "A" - сквозному доступу? Hе понял.

Anatoly

Reply to
Anatoly Mashanov

Hello Rifkat!

19 Apr 04 18:55, you wrote to me:

RA>>> Посмотри свойства BSR - в каком случае он обнуляется. И нет AM>> Hикогда не обнуляется и всегда стоит в 1. RA> Ты к SFR как обращаешься - через биты BSR или через Accsess Bank?

Только BSR==1. Вообще. В Access Bank обращения идут только к ячейкам сохранения контекста, находящимся с 0 адреса, и только командами movff - полет нормальный. До этого ячейки сохранения были первом банке, BSR==1 и сохранение командами movff - были глюки.

Anatoly

Reply to
Anatoly Mashanov

RA>>>> Посмотри свойства BSR - в каком случае он обнуляется. И нет AM>>> Hикогда не обнуляется и всегда стоит в 1. RA>> Ты к SFR как обращаешься - через биты BSR или через Accsess Bank?

AM> Только BSR==1. Вообще. В Access Bank обращения идут только к ячейкам сохранения AM> контекста, находящимся с 0 адреса, и только командами movff - полет нормальный. AM> До этого ячейки сохранения были первом банке, BSR==1 и сохранение командами AM> movff - были глюки.

Почитай внимательно организацию ОЗУ в 18х - у тебя именно здесь проблемы. Как ты, допустим, опрашиваешь значение бита Z в STATUSe?

Reply to
Rifkat Abdulin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.