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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Судя по даташиту инициализация у МЭЛТ похожая. Фьюзы верно стоят? Попробуйте неиспользуемые DB0 - DB3 на землю посадить.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Adagumer
Поставщик валерьянки для Кота
Сообщения: 2283
Зарегистрирован: Чт ноя 15, 2012 20:47:59
Откуда: Крымск

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

Сообщение Adagumer »

edm2007 писал(а):Попробуйте неиспользуемые DB0 - DB3 на землю посадить.

Я нескольких схемах видел что DB0 - DB3 заземлены, в массе же они висят в воздухе. Как всё-таки правильно поступать? Разъясните кто знает. :?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Да обычно ничего подтягивать не нужно. Но некоторые дисплеи умудряются на этих ногах всякий мусор ловить. И как следствие - некорректная работа. Вообще такое бывает крайне редко, и само по себе не нормально.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
ХатёнаГГ
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 27, 2009 01:07:41
Откуда: Иваново - город невест

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

Сообщение ХатёнаГГ »

Посадил эти каналы на ноль - вообще всё пропало.
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

Соединяли так?
Вложения
connecting_4bit.jpg
(45.62 КБ) 401 скачивание
ХатёнаГГ
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 27, 2009 01:07:41
Откуда: Иваново - город невест

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

Сообщение ХатёнаГГ »

amv2000 писал(а):Соединяли так?

Да, один в один как на картинке.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Если все подключено верно, значит в библиотеке баскома работа с дисплеем отличается от МЭЛТ. Даташит в руки и пишите свою библиотеку. Благо, там все предельно просто.

P.S. В идеале бы подключить дисплей с контроллером HD44780. Для проверки.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
igor1234
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт апр 14, 2011 17:12:31

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

Сообщение igor1234 »

Ссылка на сообщение: viewtopic.php?p=1583859#p1583859 и гистерезис на 0,1V пропишите пожалуйста,если не затруднит.
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

edm2007 писал(а):Проверил:

Изображение

Изображение

На всякий случай HEX прикрепил. Как видно, он точно рабочий.


Отпаял припаял заново и все заработало. Подскажи как сделать что бы побыстрее работал, а то он с затуплением цыфры изменяет... :((
fuse !?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

tomas111 писал(а):Отпаял припаял заново и все заработало.


Значит в монтаже косяк был.

tomas111 писал(а):fuse !?


Ага, фьюзы. По умолчанию мега 8 зашита на 1 MHz, а тебе нужно 8. Либо фьюзы изменить, либо в коде поправить (это если в меге фьюзы не менялись никогда). Чем шьешь?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

У меня тритон :))
В коде у меня 8 но работает судя по всему на 1 :((
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Хорошая штука. Вот там галка это фьюз равен 0 (установлен). По умолчанию CKSEL3 = 0 (галка), CKSEL2 = 0 (галка), CKSEL1 = 0 (галка), CKSEL0 = 1 (нет галки). Это 1 MHz. Может конечно и быть иначе, если фьюзы менялись. Нужно выставить CKSEL3 = 0 (галка), CKSEL2 = 1 (нет галки), CKSEL1 = 0 (галка), CKSEL0 = 0 (галка). Это и будет 8 MHz.

Только сначала при чтении микросхемы (Read chip) поставь галку "Чтение Fuse bits", затем измени их во вкладке "Параметры", и при программировании (Programm) поставь галку "Запись Fuse bits". И все у тебя будет хорошо. :tea:
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

8 Mgz это сильно быстро ... наверное нужно около 4 что бы не сильно все мелькало :))
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

У Вас же в коде забито

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

$regfile = "m8def.dat" ' используем ATmega8
$crystal = 8000000 ' тактовая частота
т.е. все задержки вычисляются исходя из этой частоты.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

tomas111 писал(а):8 Mgz это сильно быстро ... наверное нужно около 4 что бы не сильно все мелькало :))


Это бред.

amv2000 писал(а):У Вас же в коде забито


Ну так я выше и писал:

edm2007 писал(а):Либо фьюзы изменить, либо в коде поправить


Только если в коде править, то нужно твердо быть увереным, что МК работает на известной частоте. Но я вижу, что и с такими элементарными вещами проблемы...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

Все разобрался. В коде поставил обновление по реже. А то сильно часто обновление было не понятно какая цыфра на дисплеи...
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

tomas111 писал(а):цыфра на дисплеи...
Правильно пишется цифра, через И. :))
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

amv2000 писал(а):
tomas111 писал(а):цыфра на дисплеи...
Правильно пишется цифра, через И. :))

Я учту :))
tomas111
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Вс мар 10, 2013 10:10:41

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

Сообщение tomas111 »

edm2007, у меня ещё два вопроса. Первый можно ли во время подсчета что бы с переодичностью допустим одна минута вылазила заставка !? А второй что не правильно в расчетах !? Почему то линейности нет при 10 процентах - 0,50 а при 90 - 6,85 хотя весь диапазон до 8,00 ?

$regfile = "m8def.dat" ' используем ATmega8
$crystal = 8000000 ' тактовая частота

Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2 'используем дисплей на 2 строчки по 16 знакомест в каждой
Cursor Off ' курсор выключен

Const Negativ = -1
Dim Ch As Integer
Dim Count As Byte ' вспомогательный счетчик
Dim Adc_value As Single
Dim Any_var As Single ' значение АЦП
Dim Adc_channel(4) As Single ' 4 значения, готовые для вывода
Config Single = Scientific , Digits = 2 ' ограничение до двух знаков
Dim V As Integer

Config Adc = Single , Prescaler = Auto , Reference = Avcc 'конфигурация АЦП
Start Adc 'запускаем аналого-цифровое преобразование

'---------- заставку-------------------------------
Cursor Off 'отключаем отображение курсора на ЖК
Cls 'очитка дисплея
Locate 1 , 1 'позиция курсора
Lcd "аoІpo Ёo¶a»oіaїД" 'выводим надпись
Locate 2 , 4 ' позиция курсора
Lcd "BepcёЗ 1.1" 'выводим надпись
Wait 2 'задержка 1 секунды
Cls

For V = 1 To 16
Locate 1 , 5
Lcd "¤aґpy·єa"
Locate 2 , V ' Задержка на 150 мс
Lcd "."
Waitms 400

Next
Cls 'очитка дисплея
'----------
'главный цикл программы

Do

For Count = 1 To 4 Step 1 ' забираем значения всех четырех каналов АЦП
Ch = Getadc(count) ' и расчитываем для вывода
Adc_value = Ch

Any_var = Adc_value / 2000 ' 2000 - можно задавать изгиб линии
Any_var = Negativ * Any_var ' Если закоментировать, изменим направление изгиба экспоненты
Any_var = Exp(any_var)

Adc_value = 1023 - Adc_value 'Инверсия
Adc_value = Adc_value / 12.786 ' диапазон до 80

'Adc_value = Adc_value * 8
'Adc_value = Adc_value / 1023

Any_var = Adc_value * Any_var

Adc_channel(count) = Any_var / 10


Next

Locate 1 , 1 ' вывод всех значений на индикатор
Lcd ; Adc_channel(1) ;
Locate 1 , 13
Lcd ; Adc_channel(2) ;
Locate 2 , 1
Lcd ; Adc_channel(3) ;
Locate 2 , 13
Lcd ; Adc_channel(4) ;

Waitms 600 ' задержка между чтениями

Loop


End
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

tomas111 писал(а):можно ли во время подсчета что бы с переодичностью допустим одна минута вылазила заставка !?


Так ради Кота, кто Вам мешает-то? Заводите таймер, настраивайте на отсчет минуты, и делайте там что хотите. Или в коде заводите счетчик проходов. Вариантов-то много.

tomas111 писал(а):что не правильно в расчетах !?


Так откуда же я знаю? Я понятия не имею, что именно Вы считаете. И как. Пройдите сами по коду уже. Допустим, значение переменной Adc_value = 123, в результате выполнения строки Any_var = Adc_value / 2000 в переменной Any_var будет значение 0,0615. А так как у нас ограничение до двух знаков, то 0,06... Ну и так далее, строку за строкой. И сами поймете, что и как получается. А то Вы где-то этот код подглядели, а я в курсе должен быть. Что там за экспонента, и какой у нее изгиб. :tea:
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Ответить

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