AVR studio в вопросах и ответах
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
В PROTEUS элементы надо соединять ОБЯЗАТЕЛЬНО ПРОВОДНИКАМИ, НЕ ДОПУСТИМО соединять элементы между собой на прямую.
Рабочая схема в PROTEUS и исходник (поправленный) в приложении.
Рабочая схема в PROTEUS и исходник (поправленный) в приложении.
- Вложения
-
- Work.rar
- (14.07 КБ) 327 скачиваний
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Без ожидания отпускания она работает. Но посчитайте, сколько раз светодиод моргнёт при нажатии на кнопку продолжительностью, ну например 1 секунду, при частоте работы контроллера скажем 1MHz.
Если собрать в железе, то светодиод для нашего глаза будет просто более тускло гореть. Ну и в PROTEUS в принципе тоже самое, просто светодиод там имеет только два состояния. На слабом компьютере он будет моргать.
Если собрать в железе, то светодиод для нашего глаза будет просто более тускло гореть. Ну и в PROTEUS в принципе тоже самое, просто светодиод там имеет только два состояния. На слабом компьютере он будет моргать.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Да-да, я про это выше и писал. Светодиод состояние сменил, кнопку опросили, снова состояние сменили... И так по кругу, пока кнопку не отпустим... Можно ставки делать, ибо непонятно в каком состоянии мы остановимся, когда кнопку отпустим. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
это понятно всё
но момент отпускания каждый раз разный - величина случайная
по теории вероятности 50 на 50
когда то из PIND должна быть считана единица , а когда то - ноль
не так ???
а у меня всегда светодиод горит !
значет где то я ошибаюсь ...
а в исправленном исходнике только проверка отпускания кнопки добавлена
я уже всё проверил и побаловался ...
если б мой исходник работал, как я говорю ...
а оно ...
господа гуру - разьясните plz
а то не усну
пс а может и не я ошибаюсь, а есть какая то особенность или настройка в протеус ...
я уж и временем срабатывания кнопки баловался - ставил на порядок выше частоты
чтоб во время срабатывания кнопки не укладывалось целое число тактов МК
а то походу он действительно всегда одно и тоже считывать из PIND будет
но момент отпускания каждый раз разный - величина случайная
по теории вероятности 50 на 50
когда то из PIND должна быть считана единица , а когда то - ноль
не так ???
а у меня всегда светодиод горит !
значет где то я ошибаюсь ...
а в исправленном исходнике только проверка отпускания кнопки добавлена
я уже всё проверил и побаловался ...
если б мой исходник работал, как я говорю ...
а оно ...
господа гуру - разьясните plz
а то не усну
пс а может и не я ошибаюсь, а есть какая то особенность или настройка в протеус ...
я уж и временем срабатывания кнопки баловался - ставил на порядок выше частоты
чтоб во время срабатывания кнопки не укладывалось целое число тактов МК
а то походу он действительно всегда одно и тоже считывать из PIND будет
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
MeL$ писал(а):это понятно всё
но момент отпускания каждый раз разный - величина случайная
по теории вероятности 50 на 50
когда то из PIND должна быть считана единица , а когда то - ноль
не так ???
а у меня всегда светодиод горит !
значет где то я ошибаюсь ...
а в исправленном исходнике только проверка отпускания кнопки добавлена
я уже всё проверил и побаловался ...
если б мой исходник работал, как я говорю ...
а оно ...![]()
господа гуру - разьясните plz
а то не усну
пс а может и не я ошибаюсь, а есть какая то особенность или настройка в протеус ...
я уж и временем срабатывания кнопки баловался - ставил на порядок выше частоты
чтоб во время срабатывания кнопки не укладывалось целое число тактов МК
а то походу он действительно всегда одно и тоже считывать из PIND будет
Что-то я не понимаю совсем... Что тебя смущает-то? Кнопку нажали (ноль с PD0 считали), перешли к проверке отпускания. Пока кнопку удерживаешь (ноль на порте) так на месте и будем крутиться (ждать когда отпустишь). Только отпустил, строчку перепрыгнули, состояние порта поменяли и в начало. Если цикл ожидания после смены состояния поставить то светодиод зажигаться / гаснуть будет при нажатии а не при отпускании.
Тебя смущает что без проверки не получается "генератор случайного светодиода"?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
тут ничего не смущает и всё понятно ...
мне непонятно почему не работает в протеус мой упрощенный исходник
помоему он должен работать с той лиишь разницей, что факт зажигания диода - величина случайная
зависит не только от факта нажатия кнопки но и от времени ее отпускания (на момент отпускания установлен или сброшен бит порта Б )
пс я просто хочу разобраться до точки
иначе боюсь попасться при написании большой программы
мне непонятно почему не работает в протеус мой упрощенный исходник
помоему он должен работать с той лиишь разницей, что факт зажигания диода - величина случайная
зависит не только от факта нажатия кнопки но и от времени ее отпускания (на момент отпускания установлен или сброшен бит порта Б )
пс я просто хочу разобраться до точки
иначе боюсь попасться при написании большой программы
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
MeL$ писал(а):тут ничего не смущает и всё понятно ...
мне непонятно почему не работает в протеус мой упрощенный исходник
помоему он должен работать с той лиишь разницей, что факт зажигания диода - величина случайная
зависит не только от факта нажатия кнопки но и от времени ее отпускания (на момент отпускания установлен или сброшен бит порта Б )
пс я просто хочу разобраться до точки
иначе боюсь попасться при написании большой программы
Да, я так же изучаю.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
В PROTEUS всё работает в обоих случаях. Пощёлкайте кнопкой по дольше.
ЗЫ: Крайне не рекомендую разбираться в багах PROTEUS (А это именно БАГ). Дело не благодарное и бессмысленное. Хотите получить РАЛЬНЫЙ результат, соберите в РЕАЛЬНОМ железе.
ЗЫ: Крайне не рекомендую разбираться в багах PROTEUS (А это именно БАГ). Дело не благодарное и бессмысленное. Хотите получить РАЛЬНЫЙ результат, соберите в РЕАЛЬНОМ железе.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
MeL$ писал(а):это с моим исходником ?
Да, конечно. Пока кнопку держишь - наяривает. Только светодиод горит. Как уже говорили сегодня, не способен он в полнакала гореть. А вот когда отпускаешь - угадывать можно, ибо хрен знает что там будет. Там же видно как уровень меняется (красный / синий).
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Ошибка AVR
Здраствуйте! Подскажите пожалуйсто, компилятор после через некоторое время с момнта запуска выдает ошибку AVR Simulator: Stack pointer below start of RAM, понимаю что ошибка глобальная, но не могу понять что приводит к ее появлению 
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: Ошибка AVR
nppElM писал(а):Здраствуйте! Подскажите пожалуйсто, компилятор после через некоторое время с момнта запуска выдает ошибку AVR Simulator: Stack pointer below start of RAM, понимаю что ошибка глобальная, но не могу понять что приводит к ее появлению
День добрый. Исходник можно? Насколько я понимаю он говорит что указатель стека ниже начала ОЗУ.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Спасибо!
Большое спасибо за участие
Ошибка нашлась - некорректый возврат из п/п по ret привел к такому вот вываливанию из стека.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: Спасибо!
nppElM писал(а):Большое спасибо за участиеОшибка нашлась - некорректый возврат из п/п по ret привел к такому вот вываливанию из стека.
Вот и замечательно.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон