BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
НУ нет так нет, и на том спасибо.
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Потребовалось хранить в программе шрифты, и выводить их на некий нестандартный индикатор с динамикой, управляемый вручную.
В Bascom-е есть примеры шрифтов и кривенький редактор для них. Пришлось только дорисовать русские буквы.
Формат файла шрифта текстовый, похож на ассемблер. Там каждая строчка типа ".DB 1,2,3,4,5,6,7,8"
Вопрос.
Корректно ли будет сделать так:
В конце программы поставить метку, после неё подключить файл со шрифтами директивой $include, затем обращаться к нужному месту этого блока данных через lookup? Например:
...
adres=123
A = LOOKUP( adres, ffont)
...
...
ffont:
$include "font5_7.font"
В Bascom-е есть примеры шрифтов и кривенький редактор для них. Пришлось только дорисовать русские буквы.
Формат файла шрифта текстовый, похож на ассемблер. Там каждая строчка типа ".DB 1,2,3,4,5,6,7,8"
Вопрос.
Корректно ли будет сделать так:
В конце программы поставить метку, после неё подключить файл со шрифтами директивой $include, затем обращаться к нужному месту этого блока данных через lookup? Например:
...
adres=123
A = LOOKUP( adres, ffont)
...
...
ffont:
$include "font5_7.font"
- fedyasolder
- Поставщик валерьянки для Кота
- Сообщения: 2168
- Зарегистрирован: Ср май 01, 2013 13:53:56
- Откуда: с пальмы в Рио-Инженейро
Re: BASCOM AVR в вопросах и ответах
Основная программа
Прицепленный "alpha.bas"
Код: Выделить всё
End
$include "alpha.bas"Прицепленный "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электропримат паяю даже лёжа...
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
Кто нибудь юзал RC522 ? 
Поделитесь наработками

Поделитесь наработками
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Всё заработало, как я и хотел. Lookup исправно берёт байты из файла, где данные вбиты через ".DB".
C файлом, где записано через "Data", скорее всего будет аналогичная ситуация. Само собой, компилятор выкидывает всё лишнее и в выходной файл включает только данные, перечисленные через запятую.
C файлом, где записано через "Data", скорее всего будет аналогичная ситуация. Само собой, компилятор выкидывает всё лишнее и в выходной файл включает только данные, перечисленные через запятую.
- fedyasolder
- Поставщик валерьянки для Кота
- Сообщения: 2168
- Зарегистрирован: Ср май 01, 2013 13:53:56
- Откуда: с пальмы в Рио-Инженейро
Re: BASCOM AVR в вопросах и ответах
Граждане, товарищи. Есть вопрос. Принцип работы бутлоадера я понял (хотя пока не реализовывал). Допустим я прошил контроллер бутлоадером. Мне нужно залить некие данные во внешнюю SPI flash (2\4\8\16 и т.д. Mbit). Разумеется, код обращения к внешней памяти по SPI можно вставить в сам бутлоадер. Вот сам вопрос в том, как подавать данные на прошивку внешней памяти. Это отдельный бинарник который будет отправлен вслед за бинарником контроллера (т.е. бутлоадер будет ждать когда я программой открою второй и отправлю) или все одним куском?
электропримат паяю даже лёжа...
Re: BASCOM AVR в вопросах и ответах
Если ты сам будешь писать бутлоадер, то сам и протокол придумаешь. Как придумаешь так и будет работать.
Re: BASCOM AVR в вопросах и ответах
Доброго времени суток! Помогите пожалуйста чайнику, если не бесплатно то можно за небольшое символическое вознаграждение.
Еле еле собрал код (не мало времени ушло на настройку портов и связь устройств)
Фрагмент кода в цикле тестовый, звонит и сбрасывает вызов
Помогите мне принятый вызов сохранить в энергозависимую память (скажем при первом включении питания в течение 30 секунд, например если произошел сбой питания. Так же можно сделать перезапись номера таким способом) и далее, вытаскивать его оттуда при вызове как номер по умолчанию.
Хочу собрать сигнализацию в деревню, т.к. бываю там редко есть вероятность проникновения чужих людей. Вариант выше, впринципе рабочий, если сделать набор номера по срабатыванию порта (кнопки). Очень хочется сделать так, чтобы можно было после включения питания в течение определенного времени можно было позвонить, и принятый вызов чтобы сохранялся в памяти устройства. - меня интересут только это фрашмент кода,т.к. не понимаю, как вытаскивать нужные 12 цифр из терминала без мусора...
Спасибо за внимание!
Еле еле собрал код (не мало времени ушло на настройку портов и связь устройств)
Код: Выделить всё
$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 цифр из терминала без мусора...
Спасибо за внимание!
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: BASCOM AVR в вопросах и ответах
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Re: BASCOM AVR в вопросах и ответах
Точно, странно что раньше не заметил, хотя и просматривал страницу. Спасибо!
Подскажите, почему при компилировании ругается на Phonenumber= phonebook? ошибка 46
Мне нужно вывести номер телефона из книги на ЖК экран без мусора
Подскажите, почему при компилировании ругается на 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- Мурлокотам
- Встал на лапы
- Сообщения: 139
- Зарегистрирован: Вт ноя 06, 2012 12:37:08
- Откуда: СПб
Re: BASCOM AVR в вопросах и ответах
У вас переменная "Phonenumber" не объявлена.
Лом - это сложное техническое устройство.
Re: BASCOM AVR в вопросах и ответах
Да, еще вчера исправил, спасибо! Но ругается теперь на другое... скрин прилагаю
- Вложения
-
- Безимени-2.jpg
- (132.76 КБ) 583 скачивания
- xorkrus
- Нашел транзистор. Понюхал.
- Сообщения: 151
- Зарегистрирован: Сб ноя 19, 2011 20:13:47
- Откуда: Тамбов
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Здравствуйте. Мне как-то в чужом ассемблере разобраться в разы лучше получается разобраться, нежели в баскоме, но есть код для баскома:
Дисплей реагирует. Зажигает всякую разную чушь (16 вариантов всего. Не знаю почему). Интересует как сделать так, чтобы те самые 112 битов увеличивались на единичку и выводились, дабы сопоставить данные дата=сегмент.
Ну или просто как сааааамым простым и тупым способом вывести 112 битов. Уж сделать цикл в баскоме думаю осилю...
Даташит на LC7582
Оригинал кода здесь
Премного благодарен за наставление буду я.
С Уважением.
Спойлер
Код: Выделить всё
$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
Оригинал кода здесь
Премного благодарен за наставление буду я.
С Уважением.
Демократии нет и не будет!
Государство - это я!
Государство - это я!
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Инкрементировать число с 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 битных половинках.
Проще устанавливать один выбранный бит этого массива и смотреть что получится на дисплее.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 в вопросах и ответах
нужна помощь в сохранении заданной температуры в терморегуляторе.пишу в баском авр. если не сюда дайте ссылку .заранее спасибо .плюс файл .
- Вложения
-
- mega8.rar
- (14.89 КБ) 247 скачиваний
- fedyasolder
- Поставщик валерьянки для Кота
- Сообщения: 2168
- Зарегистрирован: Ср май 01, 2013 13:53:56
- Откуда: с пальмы в Рио-Инженейро
Re: BASCOM AVR в вопросах и ответах
При запуске программы:
При изменении температуры настройками:
Всё это написано в хелпе и в гугуле.
===
Считаю хорошим тоном перед сохранением чего-либо в eeprom прочитать сперва оттуда и сравнить. А писать только в случае отличия данных. Хотя и жирнее код.
Код: Выделить всё
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 в вопросах и ответах
Добрый вечер.
Пытаюсь освоить МК, попутно что нибудь сделать самому. В общем делаю индикацию для USB-I2S конвертера на 595 сдвиговых регистрах. У него на выходе частота дискретизации и разрядность в двоичном коде. С индикацией разобрался, в Протеусе все работает, теперь хочу усыпить МК и будить только при смене кода (ну типа что бы не фонил на остальную схему, выдал код на регистры, защелкнул их и уснул). С "уснул" проблем нет, проблема с "разбудить при смене кода". Где можно посмотреть что нибудь похожее? Все что нашел, либо по внешнему прерыванию, либо по таймеру.
Пытаюсь освоить МК, попутно что нибудь сделать самому. В общем делаю индикацию для USB-I2S конвертера на 595 сдвиговых регистрах. У него на выходе частота дискретизации и разрядность в двоичном коде. С индикацией разобрался, в Протеусе все работает, теперь хочу усыпить МК и будить только при смене кода (ну типа что бы не фонил на остальную схему, выдал код на регистры, защелкнул их и уснул). С "уснул" проблем нет, проблема с "разбудить при смене кода". Где можно посмотреть что нибудь похожее? Все что нашел, либо по внешнему прерыванию, либо по таймеру.
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: BASCOM AVR в вопросах и ответах
необходимо подключить две 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
управляются по и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
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: BASCOM AVR в вопросах и ответах
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.