Страница 259 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн сен 12, 2016 18:28:49
OLEGKARAS
НУ нет так нет, и на том спасибо.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 20, 2016 23:35:34
Microtech
Потребовалось хранить в программе шрифты, и выводить их на некий нестандартный индикатор с динамикой, управляемый вручную.
В Bascom-е есть примеры шрифтов и кривенький редактор для них. Пришлось только дорисовать русские буквы.
Формат файла шрифта текстовый, похож на ассемблер. Там каждая строчка типа ".DB 1,2,3,4,5,6,7,8"
Вопрос.
Корректно ли будет сделать так:
В конце программы поставить метку, после неё подключить файл со шрифтами директивой $include, затем обращаться к нужному месту этого блока данных через lookup? Например:
...
adres=123
A = LOOKUP( adres, ffont)
...
...
ffont:
$include "font5_7.font"
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср сен 21, 2016 08:21:21
fedyasolder
Основная программа
Прицепленный "alpha.bas"
Код: Выделить всё
Zero_big:
Data 9 , 63 , 252 , 127 , 254 , 192 , 3 , 128 , 1 , 128 , 1 , 128 , 1 , 192 , 3
Data 127 , 254 , 63 , 252
One_big:
Data 6 , 64 , 1 , 64 , 1 , 255 , 255 , 255 , 255 , 0 , 1 , 0 , 1
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср сен 21, 2016 09:03:50
kip96
Кто нибудь юзал RC522 ?

Поделитесь наработками
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср сен 21, 2016 14:00:41
Microtech
Всё заработало, как я и хотел. Lookup исправно берёт байты из файла, где данные вбиты через ".DB".
C файлом, где записано через "Data", скорее всего будет аналогичная ситуация. Само собой, компилятор выкидывает всё лишнее и в выходной файл включает только данные, перечисленные через запятую.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт окт 14, 2016 12:36:19
fedyasolder
Граждане, товарищи. Есть вопрос. Принцип работы бутлоадера я понял (хотя пока не реализовывал). Допустим я прошил контроллер бутлоадером. Мне нужно залить некие данные во внешнюю SPI flash (2\4\8\16 и т.д. Mbit). Разумеется, код обращения к внешней памяти по SPI можно вставить в сам бутлоадер. Вот сам вопрос в том, как подавать данные на прошивку внешней памяти. Это отдельный бинарник который будет отправлен вслед за бинарником контроллера (т.е. бутлоадер будет ждать когда я программой открою второй и отправлю) или все одним куском?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт окт 14, 2016 14:04:39
dimmer
Если ты сам будешь писать бутлоадер, то сам и протокол придумаешь. Как придумаешь так и будет работать.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб окт 22, 2016 17:59:04
Адвансед
Доброго времени суток! Помогите пожалуйста чайнику, если не бесплатно то можно за небольшое символическое вознаграждение.
Еле еле собрал код (не мало времени ушло на настройку портов и связь устройств)
Код: Выделить всё
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 16
$swstack = 16
$framesize = 16
Open "comb.3:19200,8,n,1" For Output As #1
Open "comb.4:19200,8,n,1" For Input As #2
Dim Cmd As String * 8
Config Portb.0 = Output
Led Alias Portb.0
Led = 1
Print #1 , "AT+CMGF=1"
Waitms 100
Print #1 , "AT+CNMI=2,2"
Waitms 100
Led = 0
Do
Wait 2
Led = 1
Print #1 , "ATD+79199999999;"
Wait 10
Print #1 , "Ath0"
Led = 0
Loop
Фрагмент кода в цикле тестовый, звонит и сбрасывает вызов
Помогите мне принятый вызов сохранить в энергозависимую память (скажем при первом включении питания в течение 30 секунд, например если произошел сбой питания. Так же можно сделать перезапись номера таким способом) и далее, вытаскивать его оттуда при вызове как номер по умолчанию.
Хочу собрать сигнализацию в деревню, т.к. бываю там редко есть вероятность проникновения чужих людей. Вариант выше, впринципе рабочий, если сделать набор номера по срабатыванию порта (кнопки). Очень хочется сделать так, чтобы можно было после включения питания в течение определенного времени можно было позвонить, и принятый вызов чтобы сохранялся в памяти устройства. - меня интересут только это фрашмент кода,т.к. не понимаю, как вытаскивать нужные 12 цифр из терминала без мусора...
Спасибо за внимание!
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс окт 23, 2016 06:02:12
max50
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс окт 23, 2016 08:55:05
Адвансед
Точно, странно что раньше не заметил, хотя и просматривал страницу. Спасибо!
Подскажите, почему при компилировании ругается на Phonenumber= phonebook? ошибка 46
Мне нужно вывести номер телефона из книги на ЖК экран без мусора
Код: Выделить всё
$regfile = "m32def.dat"
$crystal = 14745600
$baud = 9600
$hwstack = 64
$swstack = 64
$framesize = 100
Config Lcdpin = Pin , Rs = Portb.3 , E = Portb.2 , Db4 = Portb.6 , Db5 = Portb.4 , Db6 = Portb.7 , Db7 = Portb.5
Config Lcd = 16 * 2
Cursor Off Noblink
Portc.0 = 1
Cls
Declare Sub Getline(sk As String)
Declare Sub Flushbuf()
Dim Infa As String * 20
Dim Sk As String * 100
Dim Phonebook_1 As String * 12
Dim Phonebook_2 As String * 12
Dim Phonenumbereeprom As Eram String * 12
Dim Number As String * 12
'Phonenumber = "+79199999999"
Print "AT+CPBS?"
Waitms 500
Getline Sk 'Îòâåò +CPBS: "SM",1,110
Infa = Mid(sk , 13 , 1)
If Infa <> "0" Then
Gosub Phonebook
Phonenumber = Phonebook_1 <<< - - РУГАЕТСЯ СЮДА
Locate 1 , 1
Lcd "HOMEP TE§EªOHA"
Locate 2 , 1
Lcd Phonebook_1
Waitms 999
Else
Locate 1 , 2
Lcd "HET TE§EªOHA "
Locate 2 , 4
Lcd "à§± CMC"
Waitms 999
End If
Infa = ""
Flushbuf
'Òåëåôîííàÿ êíèãà
Phonebook:
Print "AT+CPBR=1"
Getline Sk
Phonebook_1 = Sk
Phonebook_1 = Mid(phonebook_1 , 11 , 12)
Locate 1 , 1
Lcd Phonebook_1
Wait 2
Print "AT+CPBR=2"
Getline Sk
Phonebook_2 = Sk
Phonebook_2 = Mid(phonebook_2 , 11 , 12)
Locate 2 , 1
Lcd Phonebook_2
Wait 2
Flushbuf
Return
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн окт 24, 2016 09:05:53
Мурлокотам
У вас переменная "Phonenumber" не объявлена.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн окт 24, 2016 15:32:12
Адвансед
Да, еще вчера исправил, спасибо! Но ругается теперь на другое... скрин прилагаю
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн окт 24, 2016 18:36:29
Аlex
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср окт 26, 2016 12:32:33
xorkrus
Здравствуйте. Мне как-то в чужом ассемблере разобраться в разы лучше получается разобраться, нежели в баскоме, но есть код для баскома:
Спойлер
Код: Выделить всё
$regfile = "attiny13.dat" '
$crystal = 9600000
$hwstack = 0
$swstack = 0
$framesize = 0
$lib "bcd.lbx"
$external Bin2bcd16
Declare Function Bin2bcd16(binval As Word) As Word
Config Pinb.2 = Output : Pinb.2 = 0
Config Pinb.1 = Output : Pinb.1 = 0
Config Pinb.0 = Output : Pinb.0 = 0
Dat Alias Portb.2 'linia danych
Clk Alias Portb.1 'linia zegarowa
Ce Alias Portb.0 'zezwolenie transmisji
Dim V As Long
Dim Petla As Byte , Dane(16) As Byte
V = 0
Do
Gosub Gendata : Gosub Outputdata
Incr V
Waitms 500
Loop : End
Gendata:
Dane(1) = V And &B0000000000001111
Dane(2) = V And &B0000000000001111
Dane(3) = V And &B0000000000001111
Dane(4) = V And &B0000000000001111
Dane(5) = V And &B0000000000001111
Dane(6) = V And &B0000000000001111
Dane(7) = V And &B0000000000001111
Dane(8) = V And &B0000000000001111
Dane(9) = V And &B0000000000001111
Dane(10) = V And &B0000000000001111
Dane(11) = V And &B0000000000001111
Dane(12) = V And &B0000000000001111
Dane(13) = V And &B0000000000001111
Dane(14) = V And &B0000000000001111
Dane(15) = V And &B0000000000001111
Dane(16) = V And &B0000000000001111
Return
Outputdata:
Set Ce
For Petla = 6 To 121
Dat = Dane(1).petla
Set Clk : Reset Clk
If Petla = 61 Then Reset Ce : Set Ce
Next
Reset Ce
Return
Дисплей реагирует. Зажигает всякую разную чушь (16 вариантов всего. Не знаю почему). Интересует как сделать так, чтобы те самые 112 битов увеличивались на единичку и выводились, дабы сопоставить данные дата=сегмент.
Ну или просто как сааааамым простым и тупым способом вывести 112 битов. Уж сделать цикл в баскоме думаю осилю...
Даташит на LC7582
Оригинал кода здесь
Премного благодарен за наставление буду я.
С Уважением.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт окт 27, 2016 21:11:43
Microtech
Инкрементировать число с 112 битами, - это не простая задача. Нужно перебрать 2^112 вариантов. Даже очень быстрый процессор будет считать миллиарды лет.

Проще устанавливать один выбранный бит этого массива и смотреть что получится на дисплее.
x=номер бита
Outputdata:
Set Ce
For Petla = 0 To 121
if petla=x then : Dat =1 : else : dat=0 : endif
Set Clk : Reset Clk
If Petla = 61 Then: Reset Ce : Set Ce : endif
Next petla
Reset Ce
Return
не знаю специфику чипа, может там надо одновременно ставить 2 бита в верхних и нижних 62 битных половинках.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт окт 28, 2016 20:17:22
okean220
нужна помощь в сохранении заданной температуры в терморегуляторе.пишу в баском авр. если не сюда дайте ссылку .заранее спасибо .плюс файл .
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт окт 28, 2016 21:31:09
fedyasolder
При запуске программы:
Код: Выделить всё
dim b as byte
dim с as byte
dim temp_a as single
Readeeprom b , 1' целая часть
Readeeprom c , 2' десятые
a = с / 10'десятые
a = a + b'прибавляем целую часть
При изменении температуры настройками:
Код: Выделить всё
b = int (a)'берём целую часть Т
temp_a = a'закидываем Т во вспомогат переменную
temp_a = temp_a - b'находим десятые
temp_a = temp_a * 10'представляем десятые как целое число
с = temp_a'перекидываем в байтовую переменную
Writeeeprom b, 1 'сохраняем целую часть
Writeeeprom c, 2 ' сохраняем десятые
Всё это написано в хелпе и в
гугуле.
===
Считаю хорошим тоном перед сохранением чего-либо в eeprom прочитать сперва оттуда и сравнить. А писать только в случае отличия данных. Хотя и жирнее код.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср ноя 02, 2016 18:07:51
Злой
Добрый вечер.
Пытаюсь освоить МК, попутно что нибудь сделать самому. В общем делаю индикацию для USB-I2S конвертера на 595 сдвиговых регистрах. У него на выходе частота дискретизации и разрядность в двоичном коде. С индикацией разобрался, в Протеусе все работает, теперь хочу усыпить МК и будить только при смене кода (ну типа что бы не фонил на остальную схему, выдал код на регистры, защелкнул их и уснул). С "уснул" проблем нет, проблема с "разбудить при смене кода". Где можно посмотреть что нибудь похожее? Все что нашел, либо по внешнему прерыванию, либо по таймеру.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср ноя 02, 2016 21:31:52
Novice user
необходимо подключить две RDA5807 к одной атмега8,но так,чтоб можно было управлять каждой по отдельности?
управляются по и2с,может можно в процессе исполнения программы изменять порты и2с вот так например
Config Sda = PortC.4
Config Scl = PortC.5
'передаем команды для первой RDA5807
................
Config Sda = PortC.3
Config Scl = PortC.5
'передаем команды для второй RDA5807
...
Config Sda = PortC.4
Config Scl = PortC.5
'снова передаем команды для первой RDA5807
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт ноя 04, 2016 05:59:41
max50
Novice user писал(а):необходимо подключить две RDA5807 к одной атмега8
Тут посмотрите.