BASCOM AVR в вопросах и ответах
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Судя по даташиту инициализация у МЭЛТ похожая. Фьюзы верно стоят? Попробуйте неиспользуемые DB0 - DB3 на землю посадить.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- Adagumer
- Поставщик валерьянки для Кота
- Сообщения: 2283
- Зарегистрирован: Чт ноя 15, 2012 20:47:59
- Откуда: Крымск
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Попробуйте неиспользуемые DB0 - DB3 на землю посадить.
Я нескольких схемах видел что DB0 - DB3 заземлены, в массе же они висят в воздухе. Как всё-таки правильно поступать? Разъясните кто знает.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Да обычно ничего подтягивать не нужно. Но некоторые дисплеи умудряются на этих ногах всякий мусор ловить. И как следствие - некорректная работа. Вообще такое бывает крайне редко, и само по себе не нормально.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
ХатёнаГГ
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Пт фев 27, 2009 01:07:41
- Откуда: Иваново - город невест
Re: BASCOM AVR в вопросах и ответах
Посадил эти каналы на ноль - вообще всё пропало.
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
Соединяли так?
- Вложения
-
- 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 в вопросах и ответах
Если все подключено верно, значит в библиотеке баскома работа с дисплеем отличается от МЭЛТ. Даташит в руки и пишите свою библиотеку. Благо, там все предельно просто.
P.S. В идеале бы подключить дисплей с контроллером HD44780. Для проверки.
P.S. В идеале бы подключить дисплей с контроллером HD44780. Для проверки.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Ссылка на сообщение: viewtopic.php?p=1583859#p1583859 и гистерезис на 0,1V пропишите пожалуйста,если не затруднит.
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Проверил:
На всякий случай HEX прикрепил. Как видно, он точно рабочий.
Отпаял припаял заново и все заработало. Подскажи как сделать что бы побыстрее работал, а то он с затуплением цыфры изменяет...
fuse !?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
tomas111 писал(а):Отпаял припаял заново и все заработало.
Значит в монтаже косяк был.
tomas111 писал(а):fuse !?
Ага, фьюзы. По умолчанию мега 8 зашита на 1 MHz, а тебе нужно 8. Либо фьюзы изменить, либо в коде поправить (это если в меге фьюзы не менялись никогда). Чем шьешь?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
У меня тритон 
В коде у меня 8 но работает судя по всему на 1
(
В коде у меня 8 но работает судя по всему на 1
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Хорошая штука. Вот там галка это фьюз равен 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". И все у тебя будет хорошо.
Только сначала при чтении микросхемы (Read chip) поставь галку "Чтение Fuse bits", затем измени их во вкладке "Параметры", и при программировании (Programm) поставь галку "Запись Fuse bits". И все у тебя будет хорошо.

"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
8 Mgz это сильно быстро ... наверное нужно около 4 что бы не сильно все мелькало 
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
У Вас же в коде забитот.е. все задержки вычисляются исходя из этой частоты.
Код: Выделить всё
$regfile = "m8def.dat" ' используем ATmega8
$crystal = 8000000 ' тактовая частота- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
tomas111 писал(а):8 Mgz это сильно быстро ... наверное нужно около 4 что бы не сильно все мелькало
Это бред.
amv2000 писал(а):У Вас же в коде забито
Ну так я выше и писал:
edm2007 писал(а):Либо фьюзы изменить, либо в коде поправить
Только если в коде править, то нужно твердо быть увереным, что МК работает на известной частоте. Но я вижу, что и с такими элементарными вещами проблемы...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Все разобрался. В коде поставил обновление по реже. А то сильно часто обновление было не понятно какая цыфра на дисплеи...
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
Правильно пишется цифра, через И.tomas111 писал(а):цыфра на дисплеи...
Re: BASCOM AVR в вопросах и ответах
amv2000 писал(а):Правильно пишется цифра, через И.tomas111 писал(а):цыфра на дисплеи...
Я учту
Re: BASCOM AVR в вопросах и ответах
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 в вопросах и ответах
tomas111 писал(а):можно ли во время подсчета что бы с переодичностью допустим одна минута вылазила заставка !?
Так ради Кота, кто Вам мешает-то? Заводите таймер, настраивайте на отсчет минуты, и делайте там что хотите. Или в коде заводите счетчик проходов. Вариантов-то много.
tomas111 писал(а):что не правильно в расчетах !?
Так откуда же я знаю? Я понятия не имею, что именно Вы считаете. И как. Пройдите сами по коду уже. Допустим, значение переменной Adc_value = 123, в результате выполнения строки Any_var = Adc_value / 2000 в переменной Any_var будет значение 0,0615. А так как у нас ограничение до двух знаков, то 0,06... Ну и так далее, строку за строкой. И сами поймете, что и как получается. А то Вы где-то этот код подглядели, а я в курсе должен быть. Что там за экспонента, и какой у нее изгиб.

"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон