|
|
|
|
HOWK: При сбросе ( MCLR ) устанавливаются все регистры МК в 0, кроме TRIS и OPTION - они в 1, STATUS - 3 и 4 биты в 1. Это не вполне соответствует истине. И никаких вырываний кусков из текста нет. Читайте даташит (фрагмент в аттаче). В некоторые регистры после сброса заносятся начальные значения (вовсе не обязательно это будут нули!) А данные в бОльшей части регистров, если говорить обо ВСЕХ регистрах, а не только SFR - не изменяются. Посмотрите табл. 3-4 в переводе PIC16 Manual. Убедились? То, что МК занесёт в регистры нули после сброса - распространённое заблуждение среди начинающих. Это может сделать компилятор, но сам PIC этого не делает. |
|
|
AlexAlcoa: проблема с переполнением стека Проблем не будет, поскольку и переполнения тоже. Если достигнут максимум стека, новые данные записываются поверх старых. Поскольку, при сбросе, программа начинается заново, старые данные нас вовсе не интересуют. Более того. Как-то, даже использовал выход из ПП без Return (т.е. без извлечения из стека), поскольку логика программы это позволяла. |
|
|
Такой вариант возможен при включенном сторожевом таймере. Если нужен выполнить сброс направляете программу на цикл где отсутствует сброс сторожевого таймера. Таймер отрабатывает время и пик перезапускается. Проблем не возникало. |
|
|
Gregory: поскольку и переполнения тожеOK. Значит просто GOTO 0x0000
|
|
|
AlexAlcoa: просто GOTO 0x0000 Ну, там уж сами смотрите. Может и не обязательно каждый раз инициализацию проходить. |
|
|
|
|