Состояние портов при Reset в Attiny13

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Пн мар 29, 2010 12:19:06

Сообщение pavelm-ks »

Всем привет !
Подскажите, как срабатывает RESET в 13-й тиньке ? А именно, какое состояние портов при сбросе выставляется?
То которое было в вомент ресета или обнуляется все?
Дело в том, что у меня на порту PB.0 работает ШИМ и надо чтобы при низком уровне на RESET PB.0 как можно быстрей обнулялся .
Я просимулировал в протеусе, получается такая бодяга , что при низком уровне на RESET состояние порта с ШИМ-ом скачет рандомно.Т..е иногда зависае на высоком иногда на низком уровне - видимо зависит от момент прерывания.
Прописал в обработчике ресета PORTB.0=0 и OCROA=0 (codevision) все равно скачет выход ШИМ. Т.е. пока на RESETE действует низкий уровень PB.0 вполне себе может висеть в высоком состоянии. Только если убрать с ресета низкий уровень тогда запускется основное тело проги и там уже все обнуляется...
Есть возможнотсь как то выставить состояние PB0 при сбросе ? И вообще это нормальная ситуация что порты остаются в том состоянии которое было в момент ресета или это глюк протеуса?
Я просто планирую при помощи датчика холла и ресета организовать защиту от кз и зависание PB0 в высоком состоянии тут ну никак не приемлемо. Или лучше пеервести reset как порт ввода вывода о работать через обычное прерываине?
Спасибо!
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3487
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Сообщение smacorp »

pavelm-ks писал(а):Или лучше пеервести reset как порт ввода вывода о работать через обычное прерываине?
Вы сами и ответили на свой вопрос.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

После сброса и до следующей инициализации порты находятся в высокоимпедансном состоянии (PORTx=0,DDRx=0), причем это описано в справочных данных на контроллер.
Определенное состояние такого вывода делается элементарной подтяжкой резистором (например 10к) к нужному уровню (+питания или земля). После переключения DDRx в "1", этот резистор уже не будет влиять на уровень по сравнению в выходным драйвером порта.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Пн мар 29, 2010 12:19:06

Сообщение pavelm-ks »

Engineer_Keen писал(а):После сброса и до следующей инициализации порты находятся в высокоимпедансном состоянии (PORTx=0,DDRx=0), причем это описано в справочных данных на контроллер.
Определенное состояние такого вывода делается элементарной подтяжкой резистором (например 10к) к нужному уровню (+питания или земля). После переключения DDRx в "1", этот резистор уже не будет влиять на уровень по сравнению в выходным драйвером порта.
Спасибо, помогли чайнику ! :) Действительно надо было просто притянуть 10К и все ок в протеусе симулируется!
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «AVR»