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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Возвращаясь к своей эпопее про LCD 8x2, спешу сообщить, что я его таки победил. Правда пришлось использовать другой МК (помощнее), зато теперь все работает как надо! Ссылка на фото: http://xtrason.mylivepage.ru/images/%D0%A4%D0%BE%D1%82%D0%BE-0004_rot_1.jpg работающего девайса, кого заинтересует могу дать схему, прошивку, исходник.Изображение
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):Правда пришлось использовать другой МК (помощнее)


И что же, дело именно в "мощности" МК ? Да ну, ерунда какая. Как это применимо к индикатору? Где связь? 2313 вроде не отличается "наворотами", но и на нем все прекрасно работает. :wink:
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Ну, начать надо, справедливости ради, с того, что МК в первоначальном варианте применялся не классический ATtiny2313-20PI, а усовершенствованный ATtiny2313A-PU. Думаю, в этом как раз все дело, потому как даже файлы описания МК в Bascom 2.0.5.0 разные для этих МК, а в Bascom 1.11.9.8 - файл только один - "Attiny2313.dat". Мне кажется, что как раз при переходе с одной версии на другую и произошла путаница. Надо будет потом написать программу с нуля в Bascom 2.0.5.0 и проверить, что же будет?! Далее: заметил еще один нюанс. При "неровных" частотах кварца, например 11.0592MHz или 3.6864MHz и других подобных, при недостаточно мощном компе, симуляция в Proteus может показывать погоду в унитазе. Стоит сменить частоту кварца на "ровную" (4MHz, 8MHz и т.п.) или просимулировать все на более мощном компе, сразу все встает на место. Отсюда и были глюки с отображением в симуляторе.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Без проблем пишу в версии 1.11.9.8 для Attiny2313A и Atmega8A (используя Attiny2313.dat и m8def.dat, соответственно). Пока все ровно (и с LCD в том числе). От новых версий отказался по указанной выше причине. У меня очень много проектов в версии 1.11.9.8, а при компиляции в версии 2 (даже без изменений кода) они просто перестают работать. Версия же 1.11.9.8 не давала ни единого повода в ней усомниться...

Что же касается симуляции то я иногда запускаю Proteus на компе с тактовой 400 МГц и ОЗУ 320 Мб. :)) Единственное что выдает, что симуляция идет не в реальном времени. Отображение же верное.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

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

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

Сообщение edm2007 »

Я бы сразу на версию 2 подумал, но вроде и в старой изначально не работало ?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Да, не работало. Мне кажется из-за кварца на 11.0592МГц, а может из-за чего-то другого. Ноя все равно добью его и все-таки запущу на ATtiny2313A! :))
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Вобщем так, котятки, спешу вам сообщить, что Я САМЫЙ ТУПОЙ КОТ НА СВЕТЕ!!! Дело-то как оказалось было не в бобине, просто раздолбай сидел в кабине... :oops: Мне, конечно, ужасно стыдно, но я тупанул конкретно... Оказывается я просто неправильно распаял проводники от МК до LCD. В этом-то все дело и было. Вот и не заводилось ничего. Все переделал, теперь мой термостат работает на ATtiny2313A и LCD WH0802A, да еще и результат измерения передает по USART каждые 10 измерений. Вот оно как! :))

P.S. Да, к слову, про версию 2.0.5.0 хочу сказать, что код там получается компактнее. Не сильно правда (процентов на 10), но все же приятно. Кстати, программа для термостата писалась на ней родимой, да к тому же с миграцией проекта из версии 1.11.9.8. Поэтому, здесь можно поспорить с Михаилом (edm2007) по поводу того, что программы, написанные в версии 1.11.9.8 не работают на версии 2.0.5.0... :)
Кстати, посмотреть разные версии термостатов можно здесь:
http://img10.tempfile.ru/10305/1636baec ... 673b30.jpg и здесь:
http://img6.tempfile.ru/10305/17dd717c9 ... 870032.jpg
Верхний индикатор (1 строка на LCD) отображает установленную (заданную) температуру, нижний индикатор (2 строка на LCD) отображает измеренную температуру. Естественно, заданную температуру можно менять , также в версии с LED-индикаторами можно менять яркость последних, процент изменения яркости тоже отображается.
Последний раз редактировалось Igor_67 Ср ноя 02, 2011 16:11:18, всего редактировалось 1 раз.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Igor_67 писал(а):Оказывается я просто неправильно распаял проводники от МК до LCD.


В самом начале хотел про это написать. Но не стал, а то опять началось бы "обидеть хотите" и прочее. :) Рад что все решилось.

Igor_67 писал(а):Поэтому, здесь можно поспорить с Михаилом


А со мной не нужно спорить, я просто говорю как у меня было. :) Единственное, это было давно. Еще весной (если не раньше). Может такая "версия" была...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

Сообщение aleksandr-zh »

Знающие, подскажите:
есть переменная word
необходимое её значение поделить на 250000 и отобразить на 7-сегментном индикаторе

отобразить - не проблема, но как делить в слове? ведь я получу значения после запятой

могу вместо word сделать переменную как single, поделить и всё сохранится верно
но как преобразовать её так, чтобы потом отобразить на 7-сегментных индикаторах?

ps

всё
вопрос закрыт

использовал внутренние особенности компиллятора:

переменная word = переменная single

в первой переменной получаю целое значение второй переменной
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

Так можно -же делить не на 250000, а на 25, а запятую, на индикаторе, ставьте где Вам надо.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

Нужен рабочий пример-исходник взаимодействия с памятью AT24CXX.
Сделал всё по аналогии с м/с часов DS1307, но память через раз записывает данные... тоесть часто вместо фактических значений читается FF.
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

Tom91 писал(а):Нужен рабочий пример-исходник взаимодействия с памятью AT24CXX.
Сделал всё по аналогии с м/с часов DS1307, но память через раз записывает данные... тоесть часто вместо фактических значений читается FF.

http://avrproject.ru/publ/kak_podkljuch ... 8/2-1-0-46 здесь обсуждалось
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

Помогите пожалуйста с кодом.
каким образом мне мне сконфигурировать ШИМ и прировнять его к какому то значению "Х" в баскоме.
Например код:
$regfile = "attiny2313.dat"
$crystal = 8000000
Config Lcd = 16 * 2 ' äèñïëåé 2 ñòðîêè ïî 16 ñèìâîëîâ
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
Config Portd.6 = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Plus Alias Pinb.0
Minus Alias Pinb.1

Dim X As Byte

X = 0

Cursor Off
Cls

Do

If Plus = 1 Then 'îïðîñ êíîïîê
Waitms 50 'ïîäàâëåíèå äðåáåçãà êîíòàêòîâ
X = X + 1 'Åñëè êíîïêà íàæàòà, ïðèáàëÿåì 1 ê Õ
End If 'êîíö óñëîâèÿ
If Minus = 1 Then 'îïðîñ êíîïîê
Waitms 50 ' ïîäàâëåíèå äðåáåçãà
X = X - 1 '
End If '


Locate 1 , 6
Lcd X 'âûâîä íà æê

Loop

End

Например есть светодиод, яркость которого нужно регулировать с шагом 255 т .е переменная byte больше и не поместит.
подозреваю что мой код нельзя применить.
Сделать что то вроде - генерация ШИМ в основном цикле, а настройка значения Х и опрос кнопок по внешнему прерыванию. Про нелинейность светодиода в курсе. Просто не нашел ничего внятно по ШИМу.
ШИМ Скорее всего должен быть 8 битным
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

vanyap1 писал(а):подозреваю что мой код нельзя применить.


Так а где в Вашем коде ШИМ-то? И намека нет...


vanyap1 писал(а):Сделать что то вроде - генерация ШИМ в основном цикле, а настройка значения Х и опрос кнопок по внешнему прерыванию.


Вы с задачей-то определитесь, либо запускаете таймер в режиме ШИМ (и закидываете значение яркости в регистр сравнения), либо делаете программный ШИМ... Только при чем тут основной цикл... Первый вариант прост до безобразия, второй удобен тем, что можно рулить любыми выводами МК.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

Ок, кажись разобрался. Нашел пример -
$regfile = "attiny2313.dat"
$crystal = 8000000

Config Timer0 = Pwm, Compare A Pwm = Clear Down, Compare B Pwm = Clear Up, Prescale = 8

Do

Incr Pwm0a 'плавно увеличиваем значение регистра OCR0A
Incr Pwm0b 'плавно увеличиваем значение регистра OCR0B

Waitms 20 'добавим задержку

Loop

End

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

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

Сообщение edm2007 »

vanyap1 писал(а):Вот, так понял что Pwm0a и Pwm0b просто переменные и в них можно записать или приравнять значение из "Х"....


Не переменные, а как раз регистры сравнения (OCR0A, OCR0B). Да, изменяя содержимое этих регистров можно регулировать яркость светодиода.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

$regfile = "attiny2313.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
Config Portd.6 = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Plus Alias Pinb.0
Minus Alias Pinb.1

Dim X As Byte

X = 0
Config Timer0 = Pwm, Compare A Pwm = Clear Down, Compare B Pwm = Clear Up, Prescale = 8
Cursor Off
Cls


Do

If Plus = 1 Then
Waitms 50
X = X + 1
End If
If Minus = 1 Then
Waitms 50
X = X - 1
End If

Pwm0a = x


Locate 1 , 6
Lcd X

Loop

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

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

Сообщение edm2007 »

Так приравнивать возможно?


Да, в регистр сравнения будет помещено значение переменной X. Опрос кнопок сделайте нормально, есть же для этого замечательная команда Debounce.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

Спасибо большое )
Ответить

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