BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
Вот может поможет http://avrproject.ru/publ/vu_meter/1-1-0-19 тут правда на обычном дисплее (2*16) но пример вывода на этот дисплей я думаю тоже найдёте,несколькими постами выше.
Re: BASCOM AVR в вопросах и ответах
Спасибо за ссылку.Я её и мучаю -только неполучается.
Re: BASCOM AVR в вопросах и ответах
Aleks8383 писал(а):Честно так и не понял как коэф.берутся??? 0.0489 это откуда взято из практики?А как на счёт арифметики?
Читайте внимательнее эту ветку форума! И желательно с самого начала! Об этом (я про пересчет кода в нормальное значение) уже не раз говорилось на форуме и примеров была куча! Удачи!
Цапу крутить надо!!! Ку или не ку?
Re: BASCOM AVR в вопросах и ответах
Да разобрался уже давно 
- kkozyrev
- Открыл глаза
- Сообщения: 67
- Зарегистрирован: Пт дек 11, 2009 02:40:44
- Откуда: C-Петербург
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
доброго всем.
для отсылки команды в телефон ввод команды должен заканчиваться символом перевода строки.
т.е. я пишу в uart
print "AT" и долженбыть символом перевода строки.
подскажите как это в баскоме выглядит?
для отсылки команды в телефон ввод команды должен заканчиваться символом перевода строки.
т.е. я пишу в uart
print "AT" и долженбыть символом перевода строки.
подскажите как это в баскоме выглядит?
не судите, я учусь -)
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
kkozyrev писал(а):доброго всем.
для отсылки команды в телефон ввод команды должен заканчиваться символом перевода строки.
т.е. я пишу в uart
print "AT" и долженбыть символом перевода строки.
подскажите как это в баскоме выглядит?
тут не смотрели? http://bascomavr.3bb.ru/viewtopic.php?id=328
Re: BASCOM AVR в вопросах и ответах
print("AT") ; chr(13)
вот и решение всей проблемы
вот и решение всей проблемы
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
kkozyrev писал(а):print "AT" и долженбыть символом перевода строки.
подскажите как это в баскоме выглядит?
Так оно и выглядит. Команда print автоматом даёт перевод строки. Сколько раз делал, ни каких дополнительных команд. Просто print "AT" и всё!
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- kkozyrev
- Открыл глаза
- Сообщения: 67
- Зарегистрирован: Пт дек 11, 2009 02:40:44
- Откуда: C-Петербург
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
amv2000 писал(а):тут не смотрели? http://bascomavr.3bb.ru/viewtopic.php?id=328
AVRDaemon писал(а):print("AT") ; chr(13)
вот и решение всей проблемы
Спасибо большое
не судите, я учусь -)
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
Почти разобрался с дисплеем Nokia 3310, переделал тест программу под мегу 32
Накопилось ряд вопросов: почему файлы $include "3310end.bas",$include "3310bmp2.bas" подгружаются в конце, после основного цикла? Следуя логике их нужно включить еще при конфигурации...или я ошибаюсь?
И почему в оригинальном файле землю вешали на ногу D4?
Зачем софтовом SPI конфигурируется нога B1, если с дисплеем она не работает?
Код: Выделить всё
'*******************************************************************************
' конфигурация
'*******************************************************************************
$regfile = "m32def.dat" 'заголовочный файл для определения типа контроллера
$crystal = 16000000 'для рассчета времени задержки при компиляции, частоту выставляем фьюзами
$hwstack = 32 ' default
$swstack = 8 ' default
$framesize = 52 ' minimum for this library. Increase for your application needs!
'$baud = 19200 ' скорость порта 19200 бит/с.($BAUD – глобальная установка скорости информационного обмена UART)
'---------- Конфигурация ввода-вывода ----------
'Config Portd.4 = Output 'сюда я повесил ногу GND
'Portd.4 = 0
Config Portd.2 = Output 'D/C (pin 4)
D3310dc Alias Portd.2
Config Portd.3 = Output 'SCE (pin 5)
D3310ce Alias Portd.3
Config Portd.6 = Output 'Reset (pin 8)
D3310re Alias Portd.6
'конфигурируем SPI в программном режиме. SCLK (pin 2) - PORTD.0; SDA (pin 3) - PORTD.1;
Config Spi = Soft , Din = Portb.1 , Dout = Portd.1 , Ss = None , Clock = Portd.0
Spiinit 'Инициализация Spi
'*******************************************************************************
' переменные
'*******************************************************************************
Dim Strstring As String * 10 'на дисплей возможен только вывод текстовых переменных
'Dim I As Integer 'переменная для промежуточных преобразований
Dim D3310quotation As String * 1 'Определим переменную D3310quotation
D3310quotation = Chr(34)
'*******************************************************************************
' обьявление процедур
'*******************************************************************************
Declare Sub D3310reset 'подпрограмма сброса дисплея
Declare Sub D3310init 'подпрограмма инициализации дисплея
Declare Sub D3310clear 'подпрограмма очистки дисплея
Declare Sub D3310invert 'подпрограмма инвертирования отображения экрана
Declare Sub D3310uninvert 'подпрограмма стандартного(неинвертированного) отображения
Declare Sub D3310commandout(byval D3310value As Byte) 'подпрограмма вывода команд
Declare Sub D3310dataout(byval D3310value As Byte) 'подпрограмма вывода данных
Declare Sub D3310bmpout 'подпрограмма вывода bmp графики
Declare Sub D3310print(byval D3310string As String) 'подпрограмма вывода букв,чисел и символов
Declare Sub D3310position(byval D3310x As Byte , Byval D3310y As Byte) 'подпрограмма определения позиции (X,Y)
'*******************************************************************************
'*******************************************************************************
' начало программы
'*******************************************************************************
'---------- Инициализация дисплея ----------
'дисплей на контроллере PCD8544 подключен к соответствующим ножкам порта, работает в 4-битном режиме, вывод RW заземлён,
Call D3310reset 'сброс внутренних регистров контроллера экрана и видеопамяти
Call D3310init 'инициализация дисплея
Call D3310clear 'очистка экрана
'---------- основной цикл программы ----------
Do
'Выводит текстовую строку на дисплей. X – знакоместо. Принимает значения от 0 до 13.
'Y – номер строки. Может принимать значения от 0 до 5. Верхняя строка считается нулевой.
Call D3310position(2 , 1) 'позиция (X,Y) X - знакоместо, Y - номер строки
Call D3310print( "Здравствуй") 'выводим текст ("....")
Call D3310position(3 , 3)
Call D3310print( "Radiokot")
Wait 3
Call D3310clear 'очищаем экран
Loop
Stop
$include "3310end.bas"
'$include "3310bmp1.bas"
$include "3310bmp2.bas"
Накопилось ряд вопросов: почему файлы $include "3310end.bas",$include "3310bmp2.bas" подгружаются в конце, после основного цикла? Следуя логике их нужно включить еще при конфигурации...или я ошибаюсь?
И почему в оригинальном файле землю вешали на ногу D4?
Зачем софтовом SPI конфигурируется нога B1, если с дисплеем она не работает?
- Вложения
-
- Схема.jpg
- (237.77 КБ) 759 скачиваний
Re: BASCOM AVR в вопросах и ответах
Как сделать большие цифры на lcd3310 или LS020.
Я понимаю что надо рисовать в таблице но таблици-то максимум 16x16.
Подскажите а лутче покажите.СПАСИБО.
Я понимаю что надо рисовать в таблице но таблици-то максимум 16x16.
Подскажите а лутче покажите.СПАСИБО.
Re: BASCOM AVR в вопросах и ответах
amv2000 писал(а):amv2000
я так понимаю код для дисплея взяли отсюда http://avrproject.ru/publ/rabota_s_displeem_ot_nokia3310/1-1-0-21 вот и узнайте у автора почему он подключил землю дисплея к PD4.
а по поводу
$include "3310end.bas"
$include "3310bmp1.bas" после программы, так это насколько я понимаю у васика синтаксис такой.
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
selco писал(а):Как сделать большие цифры на lcd3310 или LS020.
Я понимаю что надо рисовать в таблице но таблици-то максимум 16x16.
Подскажите а лутче покажите.СПАСИБО.
можно этой программой, берете или рисуете цифры или буквы и переводите в файл понятный bascomу
имеющиеся картинки24Х32
- Вложения
-
- convertbmp.zip
- (197.96 КБ) 296 скачиваний
Re: BASCOM AVR в вопросах и ответах
Спасибо. Попробую.
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
amv2000 писал(а):selco писал(а):Как сделать большие цифры на lcd3310 или LS020.
Я понимаю что надо рисовать в таблице но таблици-то максимум 16x16.
Подскажите а лутче покажите.СПАСИБО.
можно этой программой, берете или рисуете цифры или буквы и переводите в файл понятный bascomу
имеющиеся картинки24Х32
Касаемо lcd 3310 - экспериментировал с большими цифрами, пока не получилось. Там весь экран разбит на закоместа 6x8 и все рисуется столбиками в каждом знакоместе слева направо сверху вниз. И когда я попробовал сделать цифру 2x2 знакоместа - по горизонтали получается, а по вертикали - нет, в нижние два знакоместа ничего не рисуется. Если я правильно понял - там нужно нарисовать верх цифры, потом прыгнуть на нижние знакоместа и потом их тоже закрасить в нужных местах.
С уважением,
Алексей.
Алексей.
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
Ну так можно же выводить цифры как картинки, правда ресурсов конечно будет жрать немеренно.
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
amv2000 писал(а):Ну так можно же выводить цифры как картинки, правда ресурсов конечно будет жрать немеренно.
Можно.
Я сейчас пытаюсь выводить цифры картинкой, но картинка размером с цифру, то есть не на весь экран. В файле библиотеки 3310init.bas есть небольшая подсказка...
С уважением,
Алексей.
Алексей.
- Alex_Megavolt_79
- Грызет канифоль
- Сообщения: 262
- Зарегистрирован: Пт окт 30, 2009 22:33:56
- Откуда: Санкт-Петербург
Re: BASCOM AVR в вопросах и ответах
У меня такой вопрос уважаемые коты. У меня не получается написать менюшку с использованием команд ADR , ADR2. За основу взял с http://minilabmaster.com/cgi-bin/yabb2/ ... 46889930/0 и http://avrhelp.mcselec.com/index.html?adr___adr2.htm. Но почему то в нужный пункт меню попадаю случайно могу раз 30 нажать на кнопку. Но реакция на кнопку есть, на экране появляется просто вертикальные две чёрточки и рядом звёздочка. Вот код:
Где напортачил подскажите пожалуйста
Код: Выделить всё
$regfile = "M16def.dat"
$crystal = 8000000
$hwstack = 64
$swstack = 64
$framesize = 64
$lib "lcd4.lbx"
$lib "adr2.lib"
'###################################################################################
'Конфигурируем LCD дисплей
'###################################################################################
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
Cls
'###################################################################################
'Конфигурируем порты МК
'###################################################################################
Config Debounce = 60
'кнопки
Config Pinc.2 = Input 'настройка пина c2 на вход (S1)
Config Pinc.3 = Input 'настройка пина c3 на вход (S2)
Config Pinc.4 = Input 'настройка пина c4 на вход (S3)
Config Pinc.5 = Input 'настройка пина c5 на вход (S4)
Config Pinc.6 = Input 'настройка пина c6 на вход (S5)
Config Pinc.7 = Input 'настройка пина c7 на вход (S6)
Set Portc.2 ' включить внутренний подтягивающий резистор
Set Portc.3 ' включить внутренний подтягивающий резистор
Set Portc.4 ' включить внутренний подтягивающий резистор
Set Portc.5 ' включить внутренний подтягивающий резистор
Set Portc.6 ' включить внутренний подтягивающий резистор
Set Portc.7 ' включить внутренний подтягивающий резистор
Dim Menupointer As Word
Dim B As Byte
Dim Type As Byte
Dim Dummy As Byte
Dim Message As String * 32
Dim Longstr As String * 32 , Lcdstr As String * 32
Dim Str1 As String * 16
Dim Str2 As String * 16
' Типы меню
Const Id_submenu = &HAA
Const Id_command = &H55
Main_menu:
' Ставим указатель Data на первый пункт главного меню
Restore Menu1
' Сохраняем в MenuPointer текущий указатель Data,
' который лежит в регистрах R8 и R9 (ассемблерный код).
sts {MenuPointer}, R8
sts {MenuPointer + 1}, R9
Display_new_menu:
' Извлекаем из MenuPointer указатель в регистры R8 и R9,
' то есть передвигаем указатель Data в позицию MenuPointer.
lds R8, {MenuPointer}
lds R9, {MenuPointer + 1}
' Читаем тип меню (подменю или команда), название и печатаем название
Read Type
Read Message
Longstr = Message
Cls
Lcd Message
Do
'опрос кнопок
Debounce Pinc.2 , 0 , Menu , Sub
' Если нажата не 2 (Enter), то пропускаем 2 байта с адресом
' команды или подменю - они нам не нужны.
Read Dummy
Read Dummy
Debounce Pinc.3 , 0 , Minus , Sub
' Если нажата и не 1 (<-), то снова пропускаем 2 байта с адресом
' соседа слева - они нам тоже не нужны.
Read Dummy
Read Dummy
Debounce Pinc.5 , 0 , Plus , Sub
Loop
'###################################################################################
Esc:
Return
'###################################################################################
Menu:
' Если тип у нас - подменю, то:
If Type = Id_submenu Then
' Читаем адрес дочернего меню (идет в Data сразу за названием)
Read Dataptr
' Записываем его в MenuPointer и идем читать и рисовать это новое меню
sts {MenuPointer}, R8
sts {MenuPointer + 1}, R9
Goto Display_new_menu
' Иначе (если тип - команда), то:
Else
' Читаем адрес метки команды (идет в Data сразу за названием)
Read Dataptr
' Вызываем подпрограмму по этому адресу.
movw R30,R8
icall
' И после ее отработки идем в самое начало. Здесь можно и выйти
' из меню вообще или остаться в этом пункте меню или еще что-нибудь.
lds R8, {MenuPointer}
lds R9, {MenuPointer + 1}
Goto Main_menu
End If
Return
'###################################################################################
Minus:
' Читаем адрес предыдущего меню на этом уровне (сосед слева)
Read Dataptr
' Записываем его в MenuPointer и идем читать и рисовать это новое меню
sts {MenuPointer}, R8
sts {MenuPointer + 1}, R9
Goto Display_new_menu
Return
'###################################################################################
Plus:
' Читаем адрес следующего меню на этом уровне (сосед справа)
Read Dataptr
' Записываем его в MenuPointer и идем читать и рисовать это новое меню
sts {MenuPointer}, R8
sts {MenuPointer + 1}, R9
Goto Display_new_menu
Return
End
' ---------
' Подпрограммы для команд
Runmenu11:
' Здесь делаем полезные дела
Cls
Lcd "Run com men 1->1"
Return
Runmenu12:
' Полезные дела
Cls
Lcd "Com of menu 1->2"
Return
Runmenu2:
' Полезные дела
Cls
Lcd "Com of menu 2"
Return
Runmenu3:
' Полезные дела
Cls
Lcd "Com of menu 3"
Return
Printlsd:
Str1 = Mid(longstr , 1 , 32)
Str2 = Mid(longstr , 17 , 32)
Cls
Lcd Str2
Lowerline
Lcd Str2
Return
' ---------
' Блок данных. Здесь и находится структура меню. Порядок пунктов меню не важен,
' главное правильно указать связи-адреса на дочерний элемент (подменю или
' команду) и соседей слева и справа. Структура такая:
'
' Метка_своя:
' Data Тип_Меню
' Data "Название_меню"
' Data Метка_дочернего
' Data Метка_соседа_слева
' Data Метка_соседа_справа
'
$data
Menu1:
Data Id_submenu
Data "Menu 1 v"
Adr2 Menu10
Adr2 Menu3
Adr2 Menu2
Menu10:
Data Id_submenu
Data "Menu up^"
Adr2 Menu1
Adr2 Menu12
Adr2 Menu11
Menu11:
Data Id_command
Data "Menu 11!"
Adr Runmenu11
Adr2 Menu10
Adr2 Menu12
Menu12:
Data Id_command
Data "Menu 12!"
Adr Runmenu12
Adr2 Menu11
Adr2 Menu10
Menu2:
Data Id_command
Data "Menu 2 !"
Adr Runmenu2
Adr2 Menu1
Adr2 Menu3
Menu3:
Data Id_command
Data "Menu 3 !"
Adr Runmenu3
Adr2 Menu2
Adr2 Menu1Где напортачил подскажите пожалуйста
Re: BASCOM AVR в вопросах и ответах
Доброе время суток.
вобщем понадобилось работать в Баскоме с графическим дисплеем на KS0108.
Но чтото ника непойму можноли используя стандартные функции баскома для работы с дисплеем вывести подобную картинку. Но чтото не так басик вопервых нехочет выводить текст в призвольном месте экрана во вторых при использовании разных шрифтов начинает раскидывать текст произвольно.
вобщем понадобилось работать в Баскоме с графическим дисплеем на KS0108.
Но чтото ника непойму можноли используя стандартные функции баскома для работы с дисплеем вывести подобную картинку. Но чтото не так басик вопервых нехочет выводить текст в призвольном месте экрана во вторых при использовании разных шрифтов начинает раскидывать текст произвольно.
- Вложения
-
- ЖК.gif
- (11.06 КБ) 721 скачивание
Только абсолютная пустота бездны принесёт мне покой.
Re: BASCOM AVR в вопросах и ответах
НЕ ПОЛУЧАЕТСЯ у меня S-METR на LS020.
КАК выводить квадратики в соответствии с напряжением.
ПРИМЕР НУЖЕН...
КАК выводить квадратики в соответствии с напряжением.
ПРИМЕР НУЖЕН...