Глюк 18f252

Apr 17, 2004 6 Replies

Hello All!



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



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



Anatoly


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

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

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

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

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

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

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

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

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

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

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

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?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required