-
- Ну как-бы при ресете аппаратном, ноги конфигуряются как входы с третьим состоянием. А джампом в ноль ничего в регистрах не меняется. Ибо джамп в ноль только скидывает программный счётчик и усё. - Звероящер(14.03.2017 12:12)
- Кому и кобыла невеста... Не надо путать Ресет (причиной которого служит нога Ресет или Сторожевой таймер) и передачу управления на адрес 0 (программный ресет), при Ресете регистры ВВ устанавливаются по дефолту, при программном ресете весь контекс IBAH(89 знак., 13.03.2017 11:52)
- А он и не нужен в простых аврках. Периферии немного, инициализовать ее всю все равно надо что при сбросе что при джампе на 0. Скрытых триггеров уровня приоритета, сбрасываемых ресетом, как в 8051 там нет... в-общем простая аврка совершенно не Олдфаг(48 знак., 14.03.2017 11:46, )
- Кэп говорит надо завесить до срабатывания wdt. Относительно долго, но сброс настоящий - 1111111(13.03.2017 14:42)
- Так и делаю всегда. Сброс честный, "аппаратный", с установкой всего и вся по дефолту. Мало того - для vpv.vpv(176 знак., 14.03.2017 12:09)
- На XMega рестарт положено делать иначе: Ксения(134 знак., 14.03.2017 18:01)
- Не до конца если честно понял текст, что и в какой последовательности нужно делать чтобы сбросить все честно как вы пишете - imhoteb(14.03.2017 14:05)
- 1) Включить wdt 2) while(1); - 1111111(14.03.2017 14:13)
- Именно так. Если прескалер WDT не трогался (у меня так), то он ужЕ стоИт на минимальной задержке, иначе предварительно настроить. А то сброса можно будет и 8 секунд ждать. )) - vpv.vpv(14.03.2017 14:42)
- У меня как то по недосмотру ребут получился на 10 минут. Никто не жаловался пока сам не заметил:) - 1111111(14.03.2017 16:48)
- Именно так. Если прескалер WDT не трогался (у меня так), то он ужЕ стоИт на минимальной задержке, иначе предварительно настроить. А то сброса можно будет и 8 секунд ждать. )) - vpv.vpv(14.03.2017 14:42)
- 1) Включить wdt 2) while(1); - 1111111(14.03.2017 14:13)
- Так и делаю всегда. Сброс честный, "аппаратный", с установкой всего и вся по дефолту. Мало того - для vpv.vpv(176 знак., 14.03.2017 12:09)
- После холодного старта регистры периферии аппаратно приводятся к дефолтному виду (не всегда нулевому), а потому мусора там быть не может. А вот что творится при холодном рестарте, точно не знаю, но похоже, что содержимое их не меняется. - Ксения(12.03.2017 10:29)
- То есть как МК стартовал, то все значения которые написаны в мануале изначальные, поидее должны и быть в МК? - imhoteb(12.03.2017 10:32)
- Я бы сказал, что справедливо на такое надеяться, но лучше проверять и самому проиницилизировать требуемые... sav6622(169 знак., 12.03.2017 10:56)
- Ага, а иначе бы МК мог сгореть, если бы при старте выдавал на своих пинах высокий уровень. - Ксения(12.03.2017 10:38)
- Коллеги чуть не верно назвал тему я имел в виде не GPIO порты, а GPIO регистры общего назначения. Странно что ATMEL пользуется одинаковой абривиатурой imhoteb(19 знак., 12.03.2017 11:28)
- Кстати, о GPIO. В IAR AVR в файле "iom48pa.h" (для Atmega48)допущена ошибка! Которая так и повторяется. Регистр GPIOR0 по адресу 0х1Е имеет побитовую адресацию, и я ту строчку всегда исправляю. Вместо "SFR_B_R(0x1E, GPIOR0)" должно быть vpv.vpv(73 знак., 13.03.2017 08:48)
- А вы про какой контроллер имеете ввиду, просто в atxmega128a1u все GPIO порты общего назначения расположены с 0 по 16 адрес (в десятичке) - imhoteb(13.03.2017 08:56)
- Написано же, AtMega48. :)) Вобще, у АВР бардак с GPIOR, у Аттини24 их три, и все битово доступны, у Атмеги48 тоже три, но битово доступен только один. - vpv.vpv(13.03.2017 14:43)
- У них бардак с хидерами и incками , могут забыть просто что-то вписать. Так для 48-ой , если заглянуть в файл inc , то побитно доступны все три. - Ilyaul(13.03.2017 19:33)
- Нет, как раз в *.h побитно НЕ доступен НИ один. А на самом деле, GPIOR0 побитно доступен. - vpv.vpv(14.03.2017 08:27)
- А что мешает писать так: GPIORx_Bit0 ... GPIORx_Bit7? Тем более, когда биты не несут жесткого смысла. - Ксения(13.03.2017 18:15)
- Ничто не мешает. Компилятор все прекрасно сам сделает. Но только там, где нет побитовой доступности, получаем более дутый и тормозной код. vpv.vpv(180 знак., 14.03.2017 08:42)
- У них бардак с хидерами и incками , могут забыть просто что-то вписать. Так для 48-ой , если заглянуть в файл inc , то побитно доступны все три. - Ilyaul(13.03.2017 19:33)
- Написано же, AtMega48. :)) Вобще, у АВР бардак с GPIOR, у Аттини24 их три, и все битово доступны, у Атмеги48 тоже три, но битово доступен только один. - vpv.vpv(13.03.2017 14:43)
- А вы про какой контроллер имеете ввиду, просто в atxmega128a1u все GPIO порты общего назначения расположены с 0 по 16 адрес (в десятичке) - imhoteb(13.03.2017 08:56)
- А если это РОН, то их и вовсе незачем обнулять. Какой смысл что-то читать из регистра, если в него ничего полезного не клали? Т.е. мусор в РОН ничему мешать не может. - Ксения(12.03.2017 11:35)
- Ну, вы даете... Столько проблем. WDT на минимальное время, и бесконечный цикл. А вообще, GPIO - женерал порт инпат аутпат. Так что, ввода-вывода. _basile(217 знак., 14.03.2017 10:57, )
- Кстати, о GPIO. В IAR AVR в файле "iom48pa.h" (для Atmega48)допущена ошибка! Которая так и повторяется. Регистр GPIOR0 по адресу 0х1Е имеет побитовую адресацию, и я ту строчку всегда исправляю. Вместо "SFR_B_R(0x1E, GPIOR0)" должно быть vpv.vpv(73 знак., 13.03.2017 08:48)
- Коллеги чуть не верно назвал тему я имел в виде не GPIO порты, а GPIO регистры общего назначения. Странно что ATMEL пользуется одинаковой абривиатурой imhoteb(19 знак., 12.03.2017 11:28)
- То есть как МК стартовал, то все значения которые написаны в мануале изначальные, поидее должны и быть в МК? - imhoteb(12.03.2017 10:32)