Обсуждаем контроллеры компании Atmel.
Ответить

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

Вт мар 17, 2020 16:19:53

Все заработало. Оказывается, была сопля при пайке проводков к плате LCD. Я облегченно вздохнул.

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

Пт апр 17, 2020 17:52:42

Доброго дня !

Уважаемые знатоки, кто-нибудь заводил дисплеи e-ink на Bascom ?

Вот тут нашел пример, но никак не заводится !
Если у кого есть положительный результат - помогите с кодом. Или они разные бывают, эти дисплеи ?...

У меня дисплей 1,54" 200х200 с платой, с Алика.

Спасибо.

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

Ср апр 22, 2020 13:30:49

Заводил, работает, но я переделал SPI на программный ногодрыг, а также переделал вывод шрифта, так как было лень разбираться с авторской задумкой. Дисплей 200х200.

добавлено: Нашел дома какой-то кусок со шрифтом. Должен как-то работать.
Вложения
epd200x200.zip
(8.42 KiB) Скачиваний: 248

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

Ср апр 29, 2020 09:34:39

Уважаемые знатоки, кто-нибудь заводил дисплеи e-ink на Bascom ?

Вот тут нашел пример, но никак не заводится !
У меня дисплей 1,54" 200х200 с платой, с Алика.

Предварительная причина неработоспособности - выпуск обновленных дисплеев версии 2, об этом написано на сайте производителя Waveshare.
Одинаковые дисплеи Версии 1 и версии 2 несовместимы, у них отличается первоначальная инициализация. А команды, как я понял, совпадают.

The 1.54inch e-Paper is updated to 1.54inch e-Paper V2 version. Codes of the two version are not compatible with each other. Except for the controller and codes,
the new V2 version is exactly the same as the old one. If you are users of the old version, you need to update your codes as well for your new order.

Сейчас на Али продаются дисплеи второй версии, библиотека Баском писалась под первую версию.

Для экспериментов купил Arduino Nano, скачал тестовые библиотеки - дисплеи работают только с новой V2 библиотекой. Но в Ардуино я - как балерина в тракторе...

Поэтому, если вдруг кто-то может разобрать библиотеку Ардуины и адаптировать ее под наш Баском - было бы здОрово.
Библиотеки могу выслать.

Спасибо.

PS: сами по себе дисплеи интересные, могут показывать картинку при полном отсутствии питания и управления. Вывел нужную информацию - и спать. Можно вообще вынуть дисплей из схемы -
и он будет показывать выведенную картинку бесконечно долго. Для энергоемких показометров - самое оно.
Недостаток - медленное обновление всего дисплея, около 2 секунд. Но поддерживается быстрое частичное обновление, допустим, число на дисплее.

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

Чт апр 30, 2020 10:48:07

У меня тоже получилось несколько лет тому назад.
дисплеи GDEW0154Z17
подключал дисплеи с диагональю - 1,54(152х152)/2,6(152х304)/4,2(400х390)
Есть для баскома несколько функций для отображения штатных шрифтов и картинок.
Дисплеи на 3 цвета.
Если будет интерес, выложу. Но они корявые. Под софтверный и железный интерфейс
Только, надо понимать что в течении 1-2 месяцев при ежеминутном обновлении дисплей умрет.

Изображение Изображение Изображение

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

Чт апр 30, 2020 17:47:34

Если будет интерес, выложу. Но они корявые. Под софтверный и железный интерфейс
Только, надо понимать что в течении 1-2 месяцев при ежеминутном обновлении дисплей умрет.

Супер, покажите, пожалуйста, что у вас есть.
Только, раз вы это делали несколько лет назад - боюсь, что это было под первый вариант дисплеев. Но попробовать стоит.

Мой планируемый показометр будет обновлять данные не чаще одного раза в 30-60 минут.
А что в этих дисплеях может умереть ?

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

Чт апр 30, 2020 19:05:28

Прикрепил архив.
Там две папки - одни и те же проекты, только разные степени готовности. под разные дисплеи.
Также (третья папка) исходники проектов для конвертирования картинок и создания шрифтов на .net у visual studio

часы применял - pcf2129, градусник с барометром - mpl115a2.

Код корявый, делал сам, как умел. Делать с им можете что хотите.
По поводу вопросов по примененным методам - строкой выше.
По поводу вопросов - почему так что то реализовано а не иначе - могу и не вспомнить, делал в 2017 году. Но это точно работает.

Даташитов на свои дисплеи уже не нашел. наверное остались на старом пк.

настройка подключения дисплея в этой секции (разберетесь) -
Код:
'_____|

Busy Alias Pind.0 : Config Busy = Input : Set Busy          'Display Enable
Power_epd Alias Portd.2 : Config Power_epd = Output : Reset Power_epd       'Display Power Enable
Ep_res Alias Portd.3 : Config Ep_res = Output               'Reset
Dc Alias Portd.4 : Config Dc = Output                       'Data/command
Ce Alias Portd.5 : Config Ce = Output                       'Display Enable
Mclk Alias Portd.6 : Config Mclk = Output                   'SPI CLOK
Dat Alias Portd.7 : Config Dat = Output                   'SPI DATA
'_____|
Вложения
e_inc_bascom.7z
(474.43 KiB) Скачиваний: 266

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

Вс май 24, 2020 16:19:34

Всем привет. Первая программа в протеусе работает. Можете подсказать есть ли в ней ошибки? Как сделать опрос кнопок без задержек?
$Regfile="attiny13a.dat"
$Crystal=8000000
'$hwstack=16
'$swstack=16
'$framesize=16

Config Pinb.3 = Input
Config Pinb.4 = Input
Config PINb.1 = Input
Config Portb.2 = Output
Config Portb.0 = Output

Dim SR As Byte

SR = 0
Portb.0 = 0

Do

If Pinb.1 = 0 Then IF SR = 1 Then Gosub Trunk_open
IF SR = 0 Then Gosub Led_blink

If Pinb.3 = 1 Then SR = 0
If Pinb.4 = 1 Then SR = 1
Portb.2 = 0

Loop

Trunk_open:
Portb.0 = 1
waitms 1000
Portb.0 = 0
waitms 1000
return

Led_blink:
Portb.2 = 1
If Pinb.4 = 1 Then SR = 1
If Pinb.4 = 1 Then return

waitms 100
Portb.2 = 0
If Pinb.4 = 1 Then SR = 1
If Pinb.4 = 1 Then return

waitms 550
Portb.2 = 1
If Pinb.4 = 1 Then SR = 1
If Pinb.4 = 1 Then return

waitms 100
Portb.2 = 0
If Pinb.4 = 1 Then SR = 1
If Pinb.4 = 1 Then return

waitms 550
return


End

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

Вс май 24, 2020 18:17:53

Я не понимаю до конца, что должна делать эта программа. Попытался вникнуть в задумку:
$Regfile="attiny13a.dat"
$Crystal=8000000
$hwstack=16
$swstack=16
$framesize=16

Config Pinb.3 = Input
Config Pinb.4 = Input
Config PINb.1 = Input
Config Portb.2 = Output
Config Portb.0 = Output

Dim SR As bit

SR = 0
Portb.0 = 0

Do

If Pinb.1 = 0 and SR = 1 Then Gosub Trunk_open
IF SR = 0 Then Gosub Led_blink


If Pinb.3 = 1 Then SR = 0
If Pinb.4 = 1 Then SR = 1
Portb.2 = 0

Loop

Trunk_open:
Portb.0 = 1
waitms 1000
Portb.0 = 0
waitms 1000
return


Led_blink:

Portb.2 = 1

If Pinb.4 = 1 Then
SR = 1

else
waitms 100
Portb.2 = 0
waitms 550
Portb.2 = 1
waitms 100
Portb.2 = 0
waitms 550

endif


return


End

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

Вс май 24, 2020 19:40:37

В машину хочу поставить привод для открытия багажника с наружи, сигнализация стоит штатная и на ней нет выхода состояния откр/Закр, сигнал с центр замка хочу подать на порт b3,b4. Pinb1 для кнопки открыть багажник pinb0 выход на реле привода. Portb2 светодиод для визуального контроля состояния

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

Вт май 26, 2020 12:22:12

В машину хочу поставить привод для открытия багажника с наружи, сигнализация стоит штатная и на ней нет выхода состояния откр/Закр, сигнал с центр замка хочу подать на порт b3,b4. Pinb1 для кнопки открыть багажник pinb0 выход на реле привода. Portb2 светодиод для визуального контроля состояния

Не надо опроса кнопок- используйте прерывания.

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

Чт май 28, 2020 15:56:09

Доброго времени суток. Возникла проблема, я новичок в мк и программировании, сижу и разбираю программу часов написаной в BASCOM-AVR, всё вроде бы понятно но есть одно но: на мк подвешен часовой кварц, частота его определена в 8мгц, а предделитель у таймера стоит на 8. Почему именно на 8? Заранее спасибо! Вот код(автор p-a-h-a):
$regfile = "m8def.dat"
$crystal = 8000000
Config Portb = Output , Portd = Output : Portc = &H30
Dim X As Byte , Cifri(4) As Byte 'задаем всякие переменные и масивы '
Config Clock = Soft ' конфигурируем совтовые часы
Config Timer0 = Timer , Prescale = 8 : On Timer0 Pulse : Enable Timer0: Enable Interrupts ' конфигурируем таймер 0 чтоб потом на него повесить алгоритм отображения цифр
Do ' начало основного цикла
If Pinc.4 = 0 Then
Do
Incr _min : _sec = 00
If _min > 59 Then : _min = 00 : Incr _hour : End If : If _hour > 23 Then _hour = 00 : Waitms 100
Loop Until Pinc.4 = 1
End If
If Pinc.5 = 0 Then
Do
Incr _hour : If _hour > 23 Then _hour = 00 : Waitms 100
Loop Until Pinc.5 = 1
End If
Loop 'конец основного цикла
Pulse: ' подпрограмма прерываний таймера0
Cifri(1) = _min Mod 10 : Cifri(2) = _min / 10 : Cifri(3) = _hour Mod 10 : Cifri(4) = _hour / 10
Portb = &HFF
Incr X : If X > 3 Then X = 0
Portd = Lookup(cifri(x + 1) , Dta)
Reset Portb.x
Return ' возвращаемся на место откуда прервали программу
Dta: ' таблица с данными о цифрах зажигает по порядку : 0123456789
Data &HEF , &H8C , &HB7 , &HBE , &HDC , &H7E , &H7F , &HAC , &HFF , &HFE

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

Пт май 29, 2020 13:14:12

Prescale = 8 нужно только для динамической индикации, подпрограмма которой вызывается по прерыванию от timer0. Работа timer0 не связана со счетом времени. Счет времени осуществляет встроенная функция Bascom, которая настроена тут: Config Clock = Soft.
Частота срабатывания прерываний будет 8 МГц делить на 8 и делить на 256 (переполнение timer0). Получится около 4 кГц. Там еще программно на 4 делится (Incr X : If X > 3 Then X = 0), на анодах индикатора будет около 1 кГц.

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

Пн июл 20, 2020 17:30:16

Привет коты!
Выпущена новая версия. Пора обновляться!
Качаем с официального сайта текущую версию баскома. http://register.mcselec.com/update.php? ... t=download
В архиве dll для IDE и еще пара ссылок.
Вложения
bascom_link.zip
(44.87 KiB) Скачиваний: 339
bascom.zip
(17.68 KiB) Скачиваний: 385
Последний раз редактировалось Kotэ Вт июл 21, 2020 12:38:44, всего редактировалось 2 раз(а).

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

Пн июл 20, 2020 20:46:32

can not down load new ver. ERR-D5

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

Пн июл 20, 2020 21:11:54

сижу и разбираю программу часов написаной в BASCOM-AVR, всё вроде бы понятно но есть одно но: на мк подвешен часовой кварц, частота его определена в 8мгц, а предделитель у таймера стоит на 8. Почему именно на 8?

Часовой кварц - это "генератор секунд", в общем, от него СЧИТАЮТ часы, а сама программа работает от внутреннего генератора на 8 МГц..
Видимо, у вас какие- то вот такие часы, или что- то похожее-
Изображение Изображение

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

Вт июл 21, 2020 13:40:58

tanveerriaz писал(а):can not down load new ver. ERR-D5
Many links to download BASCOM-AVR 2.0.8.3 https://pastebin.com/iHac7Uvx

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

Ср июл 22, 2020 06:14:37

thanks Kotэ

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

Пт авг 07, 2020 10:33:12

Привет, коты. У меня небольшая загвоздка. Написал малюсенькую програмульку, по другому и не назовешь. При попытке компиляции выдает ошибку в 20 строке (замкнулся геркон). Не могу понять, что ей не нравится. А очень надо. Может, кто глянет свежим взглядом.

$regfile = "attiny13a.dat"
$hwstack = 10
$swstack = 10
$framesize = 20

Config Portb.0 = Output
Config Pinb.1 = Input

Knopka Alias Pinb.3
Motor Alias Portb.0
Gerkon Alias Pinb.1

Do

While Gerkon = O ' замкнулся геркон
Motor = 1 'включился мотор
Wend

If Knopka = 0 Then 'сработал концевик
Reset Motor ' мотор выключился
End If

Loop

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

Пт авг 07, 2020 10:48:23

To rojnov!
В строке "While Gerkon = O ' замкнулся геркон" мне кажется у Вас записан не НОЛЬ (т.е. 0), а символ О!
Ответить