
BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
Возвращаясь к своей эпопее про LCD 8x2, спешу сообщить, что я его таки победил. Правда пришлось использовать другой МК (помощнее), зато теперь все работает как надо! Ссылка на фото: http://xtrason.mylivepage.ru/images/%D0 ... _rot_1.jpg работающего девайса, кого заинтересует могу дать схему, прошивку, исходник.

Цапу крутить надо!!! Ку или не ку?
- Реклама
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
И что же, дело именно в "мощности" МК ? Да ну, ерунда какая. Как это применимо к индикатору? Где связь? 2313 вроде не отличается "наворотами", но и на нем все прекрасно работает.Igor_67 писал(а):Правда пришлось использовать другой МК (помощнее)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Ну, начать надо, справедливости ради, с того, что МК в первоначальном варианте применялся не классический 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 в вопросах и ответах
Без проблем пишу в версии 1.11.9.8 для Attiny2313A и Atmega8A (используя Attiny2313.dat и m8def.dat, соответственно). Пока все ровно (и с LCD в том числе). От новых версий отказался по указанной выше причине. У меня очень много проектов в версии 1.11.9.8, а при компиляции в версии 2 (даже без изменений кода) они просто перестают работать. Версия же 1.11.9.8 не давала ни единого повода в ней усомниться...
Что же касается симуляции то я иногда запускаю Proteus на компе с тактовой 400 МГц и ОЗУ 320 Мб.
Единственное что выдает, что симуляция идет не в реальном времени. Отображение же верное.
Что же касается симуляции то я иногда запускаю Proteus на компе с тактовой 400 МГц и ОЗУ 320 Мб.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Что я могу сказать? Значит мне на этот раз не повезло, по-крайней мере - не сразу!

Цапу крутить надо!!! Ку или не ку?
- Реклама
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Я бы сразу на версию 2 подумал, но вроде и в старой изначально не работало ?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Да, не работало. Мне кажется из-за кварца на 11.0592МГц, а может из-за чего-то другого. Ноя все равно добью его и все-таки запущу на ATtiny2313A! 
Цапу крутить надо!!! Ку или не ку?
Re: BASCOM AVR в вопросах и ответах
Вобщем так, котятки, спешу вам сообщить, что Я САМЫЙ ТУПОЙ КОТ НА СВЕТЕ!!! Дело-то как оказалось было не в бобине, просто раздолбай сидел в кабине...
Мне, конечно, ужасно стыдно, но я тупанул конкретно... Оказывается я просто неправильно распаял проводники от МК до 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-индикаторами можно менять яркость последних, процент изменения яркости тоже отображается.
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 в вопросах и ответах
В самом начале хотел про это написать. Но не стал, а то опять началось бы "обидеть хотите" и прочее.Igor_67 писал(а):Оказывается я просто неправильно распаял проводники от МК до LCD.
А со мной не нужно спорить, я просто говорю как у меня было.Igor_67 писал(а):Поэтому, здесь можно поспорить с Михаилом
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
Знающие, подскажите:
есть переменная word
необходимое её значение поделить на 250000 и отобразить на 7-сегментном индикаторе
отобразить - не проблема, но как делить в слове? ведь я получу значения после запятой
могу вместо word сделать переменную как single, поделить и всё сохранится верно
но как преобразовать её так, чтобы потом отобразить на 7-сегментных индикаторах?
ps
всё
вопрос закрыт
использовал внутренние особенности компиллятора:
переменная word = переменная single
в первой переменной получаю целое значение второй переменной
есть переменная word
необходимое её значение поделить на 250000 и отобразить на 7-сегментном индикаторе
отобразить - не проблема, но как делить в слове? ведь я получу значения после запятой
могу вместо word сделать переменную как single, поделить и всё сохранится верно
но как преобразовать её так, чтобы потом отобразить на 7-сегментных индикаторах?
ps
всё
вопрос закрыт
использовал внутренние особенности компиллятора:
переменная word = переменная single
в первой переменной получаю целое значение второй переменной
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
Так можно -же делить не на 250000, а на 25, а запятую, на индикаторе, ставьте где Вам надо.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Re: BASCOM AVR в вопросах и ответах
Нужен рабочий пример-исходник взаимодействия с памятью AT24CXX.
Сделал всё по аналогии с м/с часов DS1307, но память через раз записывает данные... тоесть часто вместо фактических значений читается FF.
Сделал всё по аналогии с м/с часов DS1307, но память через раз записывает данные... тоесть часто вместо фактических значений читается FF.
- amv2000
- Опытный кот
- Сообщения: 721
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
http://avrproject.ru/publ/kak_podkljuch ... 8/2-1-0-46 здесь обсуждалосьTom91 писал(а):Нужен рабочий пример-исходник взаимодействия с памятью AT24CXX.
Сделал всё по аналогии с м/с часов DS1307, но память через раз записывает данные... тоесть часто вместо фактических значений читается FF.
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Помогите пожалуйста с кодом.
каким образом мне мне сконфигурировать ШИМ и прировнять его к какому то значению "Х" в баскоме.
Например код:
$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 битным
каким образом мне мне сконфигурировать ШИМ и прировнять его к какому то значению "Х" в баскоме.
Например код:
$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 в вопросах и ответах
Так а где в Вашем коде ШИМ-то? И намека нет...vanyap1 писал(а):подозреваю что мой код нельзя применить.
Вы с задачей-то определитесь, либо запускаете таймер в режиме ШИМ (и закидываете значение яркости в регистр сравнения), либо делаете программный ШИМ... Только при чем тут основной цикл... Первый вариант прост до безобразия, второй удобен тем, что можно рулить любыми выводами МК.vanyap1 писал(а):Сделать что то вроде - генерация ШИМ в основном цикле, а настройка значения Х и опрос кнопок по внешнему прерыванию.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ок, кажись разобрался. Нашел пример -
$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 просто переменные и в них можно записать или приравнять значение из "Х"....
$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 в вопросах и ответах
Не переменные, а как раз регистры сравнения (OCR0A, OCR0B). Да, изменяя содержимое этих регистров можно регулировать яркость светодиода.vanyap1 писал(а):Вот, так понял что Pwm0a и Pwm0b просто переменные и в них можно записать или приравнять значение из "Х"....
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
$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
вот составил код. Так приравнивать возможно?
$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 в вопросах и ответах
Да, в регистр сравнения будет помещено значение переменной X. Опрос кнопок сделайте нормально, есть же для этого замечательная команда Debounce.Так приравнивать возможно?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Спасибо большое )


