Страница 250 из 304

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 10:47:04
edm2007
KSerg писал(а):У Attiny 2313 есть 9ая нога, которая
"PD5 OC0B/T1"

Реально ли на нее повесить нагрузку, чтобы она включалась от Timer0 на 3сек. или оно только на Timer1 работает? Я что-то запутался.
Так а при чем тут Т1? Этот вывод может быть использован для подачи внешних тактовых импульсов для таймера Т1, потому он так и называется. Ну и ногодрыг для таймера Т0 (выход схемы сравнения - OC0B). А управление нагрузкой и отсчет времени никак не связаны совершенно, считайте чем угодно, и управляйте какой угодно ногой. PD5 - обычный пин порта, просто с альтернативными функциями. Как и остальные, впрочем.

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 11:19:29
edm2007
Dnepr_1186 писал(а):такое ощущение что при нажатии не происходит перехода в подпрограмму
А у Вас случайно А1 не равна 0, изначально?

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 11:24:18
Novice user
удалил

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 11:34:35
KSerg
edm2007 писал(а):
KSerg писал(а):У Attiny 2313 есть 9ая нога, которая
"PD5 OC0B/T1"

Реально ли на нее повесить нагрузку, чтобы она включалась от Timer0 на 3сек. или оно только на Timer1 работает? Я что-то запутался.
Так а при чем тут Т1? Этот вывод может быть использован для подачи внешних тактовых импульсов для таймера Т1, потому он так и называется. у и ногодрыг для таймера Т0 (выход схемы сравнения - OC0B).
Вы меня прямо спасли, что Т1 необязательно.
То есть я делаю на таймере0 CompB и верчу этой ногой как OC0B. правильно я понимаю?

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 11:42:18
edm2007
Смотрите, есть вывод PD5. Это 5-й пин порта D. Просто вывод, который можно настроить как выход, и управлять любой нагрузкой. Можно настроить как вход, и прикрутить кнопку. Но этот же вывод может быть использован альтернативно, для генерации того же ШИМ на основе таймера Т0, например. Это уже пин OC0. И этот же вывод может быть использован для внешнего подсчета импульсов таймера Т1. Это уже Т1. Получается что одна нога может быть и просто как нога (вход / выход), и как канал ШИМ для таймера Т0, и как внешнее тактирование таймера Т1. Все зависит только от Вашего желания. Вам нужно управлять нагрузкой? Берите любую ногу из свободных 18 (17, на самом деле). Считайте любым таймером, и дергайте любой ногой.

Если подробно опишете задачу, будет вариант решения.

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 14:35:07
Dnepr_1186
edm2007 писал(а):
Dnepr_1186 писал(а):такое ощущение что при нажатии не происходит перехода в подпрограмму
А у Вас случайно А1 не равна 0, изначально?
нет задал единицу изначально. Так что скажете? Внешне все правильно? Может протеус глючит? Или вряд ли?

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 14:47:11
edm2007
Ну вообще все там меняется, пройдите симуляцию пошагово (загрузите не hex файл, а obj, и нажмите "шаг" а не "воспроизвести" (вторая кнопка). Увидите как пошагово можно по коду проходить).

P.S. Другое дело, что код-то работает ровно так, как написан... Но это уже совсем другая история. :tea:

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 14:59:08
Dnepr_1186
edm2007 писал(а):Ну вообще все там меняется, пройдите симуляцию пошагово (загрузите не hex файл, а obj, и нажмите "шаг" а не "воспроизвести" (вторая кнопка). Увидите как пошагово можно по коду проходить).

P.S. Другое дело, что код-то работает ровно так, как написан... Но это уже совсем другая история. :tea:
так что с кодом не так? что поменять надо? сам допереть не могу

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 15:05:47
Мурик
Кнопка точно подключена к PinB.1 и этот вывод настроен на вход?
Между шагами должны быть задержки. Не может мотор крутится со скоростью миллион шагов в секунду.

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 15:12:47
edm2007
Для начала можно сделать так:

Код: Выделить всё

$regfile = "m8def.dat"
$crystal = 4000000

Config Portb.1 = Input
Config Portc = Output

Dim Steps As Byte

config  DEBOUNCE = 100  
'-----------------------------------------------------------

Do

Debounce Pinb.1 , 0 , Stepinc , Sub

Loop

'-----------------------------------------------------------

Stepinc:

Incr Steps
If Steps > 4 Then Steps = 1

Select Case Steps

     Case 1 : Portc = &B00000101
     Case 2 : Portc = &B00000110
     Case 3 : Portc = &B00001001
     Case 4 : Portc = &B00001010

End Select

Waitms 100

Return

End
При каждом нажатии - смена состояний. Измените код так, чтобы при удержании кнопки шаги менялись сами? Сделаете так, чтобы по второй кнопке все вертелось наиборот? :)
Мурик писал(а):Кнопка точно подключена к PinB.1 и этот вывод настроен на вход?
Угу. И есть ли подтяжка кнопки.

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 15:19:14
Dnepr_1186
да вот так, кнопка там где должна быть

Код: Выделить всё

Config Pinb.2 = Input
Pinb.1 = 1
ваш код работает, не пойму какой косяк в моем...

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 15:20:45
edm2007
Ваш код работает ровно так, как написан. Что именно не нравится?

Код: Выделить всё

Pinb.1 = 1
Конфигурировать подтяжку все же нужно через регистр PORT.

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 15:26:41
Dnepr_1186
Да переделал.
Пошло только когда в подпрограммы ввел задержку на 100мс. Спасибо за советы!

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 15:28:05
edm2007
Как написали, так и работало. У Вас шаги пролетали моментально один за другим, пока удерживалась кнопка. И лишь в конце была небольшая задержка. :)

Re: BASCOM AVR в вопросах и ответах

Добавлено: Чт мар 24, 2016 20:28:24
Dnepr_1186
решил сделать по вашему коду, так компактнее, только не могу понять. при steps=1 программа переходит к строке case 2 и так далее, т.е. сдвинуто на единицу. Почему так происходит?

Re: BASCOM AVR в вопросах и ответах

Добавлено: Пт мар 25, 2016 03:43:12
edm2007
Потому что

Код: Выделить всё

Incr Steps
Если Вы зададите сразу 1, то в обработчике оно инкрементируется и станет равно 2. Так что либо начинаем работу с 0 (тогда при первом переходе она станет равна 1, и дальше все завертится нормально), либо код

Код: Выделить всё

Incr Steps
If Steps > 4 Then Steps = 1
переносим в конец обработчика.

Re: BASCOM AVR в вопросах и ответах

Добавлено: Пт мар 25, 2016 08:35:45
Dnepr_1186
в том то и дело что я ничего не менял в вашем коде, и шаг по умолчанию сразу равен ноль, но при отладке в протеусе хорошо видно как перескакивает единицу в CASE и идет сразу на CASE 2 при шаге равном 1

Re: BASCOM AVR в вопросах и ответах

Добавлено: Пт мар 25, 2016 11:16:47
Alexlon
Не получается "развесить" 2 устройства 18b20 и ds1990 на разные выводы м\к Мега 8. Датчик температуры без инициализации порта для ds1990 работает как надо. При раскомментовании строки

" 'Config 1wire = Portd.3 'ключ ds1990"

18b20 сразу уходит в ERROR, даже без физического подключения ключа к порту. Что не так?

Код: Выделить всё

$regfile = "m8def.dat"
$crystal = 16000000
$hwstack = 128
$swstack = 128
$framesize = 128

Declare Sub 18b20

...................

Config 1wire = Portd.6                                      'датчик 18b20
'Config 1wire = Portd.3                                      'ключ ds1990

..................

Do
..................

Loop
End

'чтение данных с датчика
'********************************************************
Sub 18b20:

..............
End Sub


Re: BASCOM AVR в вопросах и ответах

Добавлено: Пт мар 25, 2016 13:04:08
Dnepr_1186
edm2007 писал(а):Потому что

Код: Выделить всё

Incr Steps
Если Вы зададите сразу 1, то в обработчике оно инкрементируется и станет равно 2. Так что либо начинаем работу с 0 (тогда при первом переходе она станет равна 1, и дальше все завертится нормально), либо код

Код: Выделить всё

Incr Steps
If Steps > 4 Then Steps = 1
переносим в конец обработчика.
блин хоть тресни, при step=0 пропускает все case как и должно, при step=1, перескакивает на case 2 :shock:

Re: BASCOM AVR в вопросах и ответах

Добавлено: Пт мар 25, 2016 13:30:25
edm2007
А?

Изображение