BASCOM AVR в вопросах и ответах
- dimon-790
- Мучитель микросхем
- Сообщения: 442
- Зарегистрирован: Пт авг 29, 2008 09:22:37
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
servnt в таком виде вряд-ли . А вот если Pinb.0 = 0 заменить на Portb.0 = 0 . Ещё Else поубирать .
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
- Реклама
Re: BASCOM AVR в вопросах и ответах
А разве команда PORT(*) - не конфигурирование I/O? Т.е. вход/выход?dimon-790 писал(а):servnt в таком виде вряд-ли . А вот если Pinb.0 = 0 заменить на Portb.0 = 0 . Ещё Else поубирать .
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
За направление отвечает регистр DDR. Если 0 то пин порта настроен на вход (в этом случае запись 1 в регистр PORT подключит внутренний подтягивающий резистор, запись 0 переведет вход в высокоимпедансное состояние), если 1 - пин настроен на выход (запись в PORT, соответственно выдаст этот уровень).
А то что в баскоме пишут PORTB = Output, так к регистру PORT это никакого отношения не имеет. И если нужно выставить уровень на выходе, то конечно нужно писать PORTB.1 = 1 (либо Set PORTB.1). Регистр PIN же предназначен для считывания реального состояния вывода в режиме входа.
А то что в баскоме пишут PORTB = Output, так к регистру PORT это никакого отношения не имеет. И если нужно выставить уровень на выходе, то конечно нужно писать PORTB.1 = 1 (либо Set PORTB.1). Регистр PIN же предназначен для считывания реального состояния вывода в режиме входа.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
А, ну да. Я тут в трех елках заблудился 
А вообще, допускается таким образом сравнивать значения на входах АЦП?:
А вообще, допускается таким образом сравнивать значения на входах АЦП?:
Код: Выделить всё
If GetADC(2) > GetADC(3) ThenRe: BASCOM AVR в вопросах и ответах
Вот таким образом работает:
Только вот, подёргивание при равных сопротивлениях есть.
Код: Выделить всё
$regfile = "attiny13.dat"
$crystal = 9600000
Ddrb = &B11100
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim A As Integer
Dim B As Integer
Do
Start Adc
A = Getadc(2)
B = Getadc(3)
If A = B Then : Portb = 0
End If
If A < B Then : Portb = 1
End If
If A > B Then : Portb = 2
End If
Loop
End- Реклама
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Неа. Только считывание значения АЦП в переменную, и уже дальнейшие операции.servnt писал(а):А вообще, допускается таким образом сравнивать значения на входах АЦП?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Т.е., вот так, как у меня:edm2007 писал(а): Неа. Только считывание значения АЦП в переменную, и уже дальнейшие операции.
Код: Выделить всё
A = Getadc(2)
B = Getadc(3)
If A = B Then : Portb = 0- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Угу, только так и можно.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Подскажите еще, можно ли одновременно использовать в TIMER1 оба выхода, но с разной частотой ШИМа?
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
можно,только каждый порт будет 8-мибитным,гдето есть пример,найду-выложу если надоservnt писал(а):Подскажите еще, можно ли одновременно использовать в TIMER1 оба выхода, но с разной частотой ШИМа?
вот http://avrproject.ru/publ/pwm_bascom/1-1-0-37
http://cxem.net/mc/mc177.php
Re: BASCOM AVR в вопросах и ответах
Ага, спасибо, понял.
А если мне надо получить на выходе МК сигнал с постоянной длительностью, к примеру, 300 мСек, но разной частотой следования, то ШИМ уже не подходит.
Как в таком случае поступать? Длительность задавать командой Waitms 300, а частоту таймером отсчитывать?
А если мне надо получить на выходе МК сигнал с постоянной длительностью, к примеру, 300 мСек, но разной частотой следования, то ШИМ уже не подходит.
Как в таком случае поступать? Длительность задавать командой Waitms 300, а частоту таймером отсчитывать?
Re: BASCOM AVR в вопросах и ответах
Ребят, объясните, ну никак не врублюсь
Вот кусок примера:
Toggle переключает пин 1 порта B каждый раз по переполнению порта №1, указанном в константе Timer1pre.
А почему тут не работает команда Disconnect?
Т.е мне надо бы что-то примерно такое:
Мне надо получить импульс постоянной длительности 150 мс, но с разным периодом.
ЗЫЖ Примерно разобрался:
Не знаю только, единственно верно и правильно такое решение
Вот кусок примера:
Код: Выделить всё
Pulse:
Stop Timer1
Timer1 = Timer1pre
Toggle Portb.1
Start Timer1
ReturnА почему тут не работает команда Disconnect?
Т.е мне надо бы что-то примерно такое:
Код: Выделить всё
Pulse:
PORTB.1 = 1
Waitms 150
Stop Timer1
Timer1 = Timer1pre (надо отсчитать 120 мс)
Disconnect Portb.1
Start Timer1
ReturnЗЫЖ Примерно разобрался:
Код: Выделить всё
Reset Portb.1
Waitms 150
Stop Timer2
Timer2 = Timer2pre
Set Portb.1
Start Timer2- Dnepr_1186
- Потрогал лапой паяльник
- Сообщения: 398
- Зарегистрирован: Чт мар 26, 2009 20:53:27
- Откуда: Беларусь.Минская обл.
Re: BASCOM AVR в вопросах и ответах
Добрый день! Осваиваю работу с экраном НОКИА3310. С китайским дисплеем-контрастность маловата. Расскажите как ее изменить програмно?
В библиотеке есть такая строчка
Здесь что-то менять надо? Либо в программе какая строчка добавляется? Спасибо заранее!
В библиотеке есть такая строчка
Код: Выделить всё
D3310commandout &HC8 'Middle contrastRe: BASCOM AVR в вопросах и ответах
Вот это значение &HC8 и регулирует контрастность. Изменяя С8 можно менять контрастность.Dnepr_1186 писал(а):D3310commandout &HC8 'Middle contrast
- Dnepr_1186
- Потрогал лапой паяльник
- Сообщения: 398
- Зарегистрирован: Чт мар 26, 2009 20:53:27
- Откуда: Беларусь.Минская обл.
Re: BASCOM AVR в вопросах и ответах
это в шестнадцатиричном виде? в десятичном получаеться 200, а слышал это значение может быть от 0 до 125. Как здесь поступить? В каких пределах его можно менять?
Последний раз редактировалось Dnepr_1186 Вс окт 20, 2013 20:00:50, всего редактировалось 1 раз.
Re: BASCOM AVR в вопросах и ответах
Нужно читать даташит на экран. Может быть, что старший бит не используется. Тогда диапазон от 128 до 253 получается в десятичной системе. Можно провести эксперимент, можно почитать. Как удобнее.
- Dnepr_1186
- Потрогал лапой паяльник
- Сообщения: 398
- Зарегистрирован: Чт мар 26, 2009 20:53:27
- Откуда: Беларусь.Минская обл.
Re: BASCOM AVR в вопросах и ответах
Посомтрел даташит на контроллер экрана... Что-то я там про контраст вообще не вижу. Посомтрите если не трудно, я в этих делах начинающий
- Вложения
-
- PCD8544U.pdf
- (155.61 КБ) 362 скачивания
Re: BASCOM AVR в вопросах и ответах
Мммрррр все неспящим котам 
Пришел Вас помучить
Имеется Button1 (PINB.2) прижатая на землю, LED (PORTB.0) и висит Button2 на внешнем прерывании (PINB.1 (INT0)).
Button1 включает светодиод на некоторое время (использую wait 10 'секунд) затем выключается.
Прерывание нужно для экстренного выключения светодиода (раньше 10 секунд) и тут как бы все работает.
А вот для повторного нажатия на Button1 требуется время wait 10.
Т.е. пришло прерывание - выключили LED, вышли из прерывания в программу и там продолжаем ждать 10 секунд, после чего Button1 будет готов обработать следующее нажатие для повторного включения светика.
Я так понял, это самое wait 10 тормозит реакцию на повторное нажатие на Button1.
Наверно тут неправильно будет использовать оператор wait в качестве задержки/паузы.
Но тогда возникает вопрос - Чем его можно заменить?
Пришел Вас помучить
Имеется Button1 (PINB.2) прижатая на землю, LED (PORTB.0) и висит Button2 на внешнем прерывании (PINB.1 (INT0)).
Button1 включает светодиод на некоторое время (использую wait 10 'секунд) затем выключается.
Прерывание нужно для экстренного выключения светодиода (раньше 10 секунд) и тут как бы все работает.
А вот для повторного нажатия на Button1 требуется время wait 10.
Т.е. пришло прерывание - выключили LED, вышли из прерывания в программу и там продолжаем ждать 10 секунд, после чего Button1 будет готов обработать следующее нажатие для повторного включения светика.
Я так понял, это самое wait 10 тормозит реакцию на повторное нажатие на Button1.
Наверно тут неправильно будет использовать оператор wait в качестве задержки/паузы.
Но тогда возникает вопрос - Чем его можно заменить?
Re: BASCOM AVR в вопросах и ответах
Dnepr_1186, смотреть стр. 16 даташита. Я бы не мучился. Если все остальное работает, попробовал бы просто изменить значение той переменной.
KOTик, таймером организовать задержку. А если прерывание было, сбросить его(таймер) или остановить.
KOTик, таймером организовать задержку. А если прерывание было, сбросить его(таймер) или остановить.
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
attyni2313 работа шим-насколько стабильно напряжение на выходе если сгладить его простой RC-цепью?думаю сделать блок фиксированных настроек на основе шим


