У Attiny 2313 есть 9ая нога, которая "PD5 OC0B/T1"
Реально ли на нее повесить нагрузку, чтобы она включалась от Timer0 на 3сек. или оно только на Timer1 работает? Я что-то запутался.
Так а при чем тут Т1? Этот вывод может быть использован для подачи внешних тактовых импульсов для таймера Т1, потому он так и называется. Ну и ногодрыг для таймера Т0 (выход схемы сравнения - OC0B). А управление нагрузкой и отсчет времени никак не связаны совершенно, считайте чем угодно, и управляйте какой угодно ногой. PD5 - обычный пин порта, просто с альтернативными функциями. Как и остальные, впрочем.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
такое ощущение что при нажатии не происходит перехода в подпрограмму
А у Вас случайно А1 не равна 0, изначально?
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
У Attiny 2313 есть 9ая нога, которая "PD5 OC0B/T1"
Реально ли на нее повесить нагрузку, чтобы она включалась от Timer0 на 3сек. или оно только на Timer1 работает? Я что-то запутался.
Так а при чем тут Т1? Этот вывод может быть использован для подачи внешних тактовых импульсов для таймера Т1, потому он так и называется. у и ногодрыг для таймера Т0 (выход схемы сравнения - OC0B).
Вы меня прямо спасли, что Т1 необязательно. То есть я делаю на таймере0 CompB и верчу этой ногой как OC0B. правильно я понимаю?
Смотрите, есть вывод PD5. Это 5-й пин порта D. Просто вывод, который можно настроить как выход, и управлять любой нагрузкой. Можно настроить как вход, и прикрутить кнопку. Но этот же вывод может быть использован альтернативно, для генерации того же ШИМ на основе таймера Т0, например. Это уже пин OC0. И этот же вывод может быть использован для внешнего подсчета импульсов таймера Т1. Это уже Т1. Получается что одна нога может быть и просто как нога (вход / выход), и как канал ШИМ для таймера Т0, и как внешнее тактирование таймера Т1. Все зависит только от Вашего желания. Вам нужно управлять нагрузкой? Берите любую ногу из свободных 18 (17, на самом деле). Считайте любым таймером, и дергайте любой ногой.
Если подробно опишете задачу, будет вариант решения.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Ну вообще все там меняется, пройдите симуляцию пошагово (загрузите не hex файл, а obj, и нажмите "шаг" а не "воспроизвести" (вторая кнопка). Увидите как пошагово можно по коду проходить).
P.S. Другое дело, что код-то работает ровно так, как написан... Но это уже совсем другая история.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт мар 24, 2016 14:59:08
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 2
Зарегистрирован: Чт мар 26, 2009 20:53:27 Сообщений: 398 Откуда: Беларусь.Минская обл.
Рейтинг сообщения:0
edm2007 писал(а):
Ну вообще все там меняется, пройдите симуляцию пошагово (загрузите не hex файл, а obj, и нажмите "шаг" а не "воспроизвести" (вторая кнопка). Увидите как пошагово можно по коду проходить).
P.S. Другое дело, что код-то работает ровно так, как написан... Но это уже совсем другая история.
так что с кодом не так? что поменять надо? сам допереть не могу
Кнопка точно подключена к PinB.1 и этот вывод настроен на вход? Между шагами должны быть задержки. Не может мотор крутится со скоростью миллион шагов в секунду.
Case 1 : Portc = &B00000101 Case 2 : Portc = &B00000110 Case 3 : Portc = &B00001001 Case 4 : Portc = &B00001010
End Select
Waitms 100
Return
End
При каждом нажатии - смена состояний. Измените код так, чтобы при удержании кнопки шаги менялись сами? Сделаете так, чтобы по второй кнопке все вертелось наиборот?
Мурик писал(а):
Кнопка точно подключена к PinB.1 и этот вывод настроен на вход?
Угу. И есть ли подтяжка кнопки.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Ваш код работает ровно так, как написан. Что именно не нравится?
Код:
Pinb.1 = 1
Конфигурировать подтяжку все же нужно через регистр PORT.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Как написали, так и работало. У Вас шаги пролетали моментально один за другим, пока удерживалась кнопка. И лишь в конце была небольшая задержка.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт мар 24, 2016 20:28:24
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 2
Зарегистрирован: Чт мар 26, 2009 20:53:27 Сообщений: 398 Откуда: Беларусь.Минская обл.
Рейтинг сообщения:0
решил сделать по вашему коду, так компактнее, только не могу понять. при steps=1 программа переходит к строке case 2 и так далее, т.е. сдвинуто на единицу. Почему так происходит?
Если Вы зададите сразу 1, то в обработчике оно инкрементируется и станет равно 2. Так что либо начинаем работу с 0 (тогда при первом переходе она станет равна 1, и дальше все завертится нормально), либо код
Код:
Incr Steps If Steps > 4 Then Steps = 1
переносим в конец обработчика.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт мар 25, 2016 08:35:45
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 2
Зарегистрирован: Чт мар 26, 2009 20:53:27 Сообщений: 398 Откуда: Беларусь.Минская обл.
Рейтинг сообщения:0
в том то и дело что я ничего не менял в вашем коде, и шаг по умолчанию сразу равен ноль, но при отладке в протеусе хорошо видно как перескакивает единицу в CASE и идет сразу на CASE 2 при шаге равном 1
Не получается "развесить" 2 устройства 18b20 и ds1990 на разные выводы м\к Мега 8. Датчик температуры без инициализации порта для ds1990 работает как надо. При раскомментовании строки
" 'Config 1wire = Portd.3 'ключ ds1990"
18b20 сразу уходит в ERROR, даже без физического подключения ключа к порту. Что не так?
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт мар 25, 2016 13:04:08
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 2
Зарегистрирован: Чт мар 26, 2009 20:53:27 Сообщений: 398 Откуда: Беларусь.Минская обл.
Рейтинг сообщения:0
edm2007 писал(а):
Потому что
Код:
Incr Steps
Если Вы зададите сразу 1, то в обработчике оно инкрементируется и станет равно 2. Так что либо начинаем работу с 0 (тогда при первом переходе она станет равна 1, и дальше все завертится нормально), либо код
Код:
Incr Steps If Steps > 4 Then Steps = 1
переносим в конец обработчика.
блин хоть тресни, при step=0 пропускает все case как и должно, при step=1, перескакивает на case 2
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения