BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
Можно, но AVR может прошиваться только если код выполняется из области загрузчика.
-
KPG
- Открыл глаза
- Сообщения: 68
- Зарегистрирован: Пн июн 19, 2017 18:51:54
- Откуда: South Ural г. Челябинск
Re: BASCOM AVR в вопросах и ответах
Интересно, а Bascom подключали к Proteus как например здесь:
Proteus и два с половиной hello world для UART и USB на микроконтроллере
И, возможно ли таким способом по УАРТ и прошивать Arduino платы из Bascom?
Какие то примеры из поставки Bascom есть с Proteus или какой нибудь архивчик с подборкой к Proteus проектов?
Похоже модели AVR в Proteus до сих пор не поддерживают режим самопрограммирования.
P.S. Другие статьи с упоминанием Proteus на Хабр
Статьи на Хабр находимые по слову Bascom
Proteus и два с половиной hello world для UART и USB на микроконтроллере
И, возможно ли таким способом по УАРТ и прошивать Arduino платы из Bascom?
Какие то примеры из поставки Bascom есть с Proteus или какой нибудь архивчик с подборкой к Proteus проектов?
Похоже модели AVR в Proteus до сих пор не поддерживают режим самопрограммирования.
P.S. Другие статьи с упоминанием Proteus на Хабр
Статьи на Хабр находимые по слову Bascom
@ „Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий.“ Козьма Петрович Прутков
Re: BASCOM AVR в вопросах и ответах
Как принудительно очистить буфер RX? Каждые 100мс происходит прием пакетов сообщений, но, подозреваю, что из-за нечистоты буфера некоторые сообщения МК не успевает принимать.
Re: BASCOM AVR в вопросах и ответах
Например, с помощью такой процедуры:
Sub Flushbuf()
Waitms 10
Do
B = Inkey() 'читаем буфер
Loop Until B = 0
End Sub
Sub Flushbuf()
Waitms 10
Do
B = Inkey() 'читаем буфер
Loop Until B = 0
End Sub
Re: BASCOM AVR в вопросах и ответах
Всем привет, собирал давно проект SIM800 на atmega 32 - он отлично работал и на разных МК, убирал код для работы с ЖКИ и запускал на меге 8 и 88.
а в от спустя год не могу эту же программу запустить на атмега 328р - почему то не корректно работает uart, сыпится мусор! перебрал все скорости и порты, все равно.. в чем дело может быть?
код взят отсюда http://avrproject.ru/index/gsm_sim900d_ ... m_avr/0-43, повторяюсь, этот код работает на меге 32, 8, 88. а на меге 328р отказывается, отваливается и барахлит именно передача данных.
или там какая та хитрость есть? подскажите пожалуйста, уже неделю мучаюсь...
исходник есть тут http://avrproject.ru/forum/13-26-13, повторюсь, рабочий
а в от спустя год не могу эту же программу запустить на атмега 328р - почему то не корректно работает uart, сыпится мусор! перебрал все скорости и порты, все равно.. в чем дело может быть?
код взят отсюда http://avrproject.ru/index/gsm_sim900d_ ... m_avr/0-43, повторяюсь, этот код работает на меге 32, 8, 88. а на меге 328р отказывается, отваливается и барахлит именно передача данных.
Код: Выделить всё
$regfile = "m328pdef.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 64
$swstack = 64
$framesize = 100
Declare Sub Getline(s As String)
Declare Sub Flushbuf()
Config Serialin = Buffered , Size = 128
Config 1wire = Portb.0 'сюда лепим 18b20
Enable Interrupts
' Отключаем ненужны порты, подягиваем к земле.исходник есть тут http://avrproject.ru/forum/13-26-13, повторюсь, рабочий
Re: BASCOM AVR в вопросах и ответах
МК тактируется от кварца или от внутреннего генератора? Точность последнего не очень высока, и частота у разных МК может немного отличаться. UART - асинхронный интерфейс, поэтому частота тут важна.
Лучше применять кварц, если используется UART. Есть даже специальные кварцы с частотами, кратными скорости передачи - 11,0592 МГц, например.
Лучше применять кварц, если используется UART. Есть даже специальные кварцы с частотами, кратными скорости передачи - 11,0592 МГц, например.
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: BASCOM AVR в вопросах и ответах
Фузы выставлял и через usb asp и через abt studio (avr isp mlii), на 8 или 16мгц, на 16 на внешний кварц в том числе.
После программирования платы после подачи питания сразу идёт вызов (выполняется одна из подпрограмм). Хотя этого быть не должно.
Ради интереса эту же программу залил на мегу32 (естественно поменяв порты) и установил частоту кварца отличающуюся от заданного, появляется такой же глюк, что и с мега328р.
То есть, причина явно кроется в настройках программы, не в фьюзах и не в кварце.... понять не могу вот ...
Добавлено after 4 minutes 38 seconds:
Вот тут http://bascomavr.3bb.ru/viewtopic.php?id=2053&p=3 описана в 74 посте и далее прохожая проблема, но решения не дали советы...
Тут подобный глюк обсуждается http://bascomavr.3bb.ru/viewtopic.php?id=1589
Видимо какая то хитрость в этой меге328р
После программирования платы после подачи питания сразу идёт вызов (выполняется одна из подпрограмм). Хотя этого быть не должно.
Ради интереса эту же программу залил на мегу32 (естественно поменяв порты) и установил частоту кварца отличающуюся от заданного, появляется такой же глюк, что и с мега328р.
То есть, причина явно кроется в настройках программы, не в фьюзах и не в кварце.... понять не могу вот ...
Добавлено after 4 minutes 38 seconds:
Вот тут http://bascomavr.3bb.ru/viewtopic.php?id=2053&p=3 описана в 74 посте и далее прохожая проблема, но решения не дали советы...
Тут подобный глюк обсуждается http://bascomavr.3bb.ru/viewtopic.php?id=1589
Видимо какая то хитрость в этой меге328р
Re: BASCOM AVR в вопросах и ответах
У Меги 168 и 328 нет фуза который отключает совместимость с типа с М103с? Как на меге 128
Re: BASCOM AVR в вопросах и ответах
Привет КотаФеям.
Что то залип с моментом:
Есть переменная Temp_W типа "WORD" и две переменные Temp_BH и Temp_BL типа "BYTE".
Произвожу коррекцию в двух переменных Temp_BH и Temp_BL и пытаюсь собрать в переменную Temp_W.
Temp_W = Temp_W(High) = Temp_BH
Temp_W = Temp_W(Low) = Temp_BL
На выходе в переменной Temp_W либо 0 либо 1 при любых значения в переменных Temp_BH и Temp_BL.
Что не так?
Подскажите плз.
Что то залип с моментом:
Есть переменная Temp_W типа "WORD" и две переменные Temp_BH и Temp_BL типа "BYTE".
Произвожу коррекцию в двух переменных Temp_BH и Temp_BL и пытаюсь собрать в переменную Temp_W.
Temp_W = Temp_W(High) = Temp_BH
Temp_W = Temp_W(Low) = Temp_BL
На выходе в переменной Temp_W либо 0 либо 1 при любых значения в переменных Temp_BH и Temp_BL.
Что не так?
Подскажите плз.
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Хрень какая-то, это что, компилируется?
Dim Temp_W As Word
Dim Temp_BL As Byte At Temp_W + 0 Overlay
Dim Temp_BH As Byte At Temp_W + 1 Overlay
Объявите переменные так, и делайте с ими что хотите.
Dim Temp_W As Word
Dim Temp_BL As Byte At Temp_W + 0 Overlay
Dim Temp_BH As Byte At Temp_W + 1 Overlay
Объявите переменные так, и делайте с ими что хотите.
Re: BASCOM AVR в вопросах и ответах
Да компилирую ,заливаю в avr, для теста вывожу PRINT Temp_W и результат 0,1
Добавлено after 58 minutes 32 seconds:
Большое Спасибо.
Определил переменные с Overlay.
Всё заработало как надо.
Добавлено after 58 minutes 32 seconds:
Большое Спасибо.
Определил переменные с Overlay.
Всё заработало как надо.
Re: BASCOM AVR в вопросах и ответах
Взял исходник с другого форума уоторый умер в 18 году, там молчат.
Почему после получения команды Firstnumber в памяти номер телефона не сохраняется? хотя ответное смс о том что номер сохранен - приходит. Дело в том, что после команды Firstnumber на остальные команды не реагирует и в терминале вылазит Error,
делал проверку сохранения номера телефона в erpoom, например чтобы при отправке команды info выдавалась команда Print phonenumber - по такой команде в терминале номер телефона отсутвует.
не могу понять почему не сохраняется номер телефона в памяти.
При этом этот же проект с дисплеем от нокии 5110 работает, номер сохраняется. в исходнике ниже код связанный с индикацией убран
код
$crystal = 16000000
$baud = 19200
$hwstack = 64
$swstack = 64
$framesize = 100
Declare Sub Getline(s As String)
Declare Sub Flushbuf()
Config Serialin = Buffered , Size = 60
Config 1wire = Portb.4 'сюда лепим 18b20
Enable Interrupts
'подключение светодиода
'==============
Config Portd.2 = Output
Led Alias Portd.2
Led = 0
' входы для контроля
'===================
Config Porta = Input
Batt Alias Pina.0 'вход для контроля питания
' выходы для удаленного управления
'===================
Config Portc = Output
Out1 Alias Portc.1
'--------------------------------------------------------------------------------------
Dim Number As String * 12 'номер телефона
Dim Temp As String * 5
Dim S As String * 50
Dim B As Byte
Dim R As Byte
Dim Z As String * 15
Dim Sms_num As String * 2 'порядковый номер смс
Dim Stmp As String * 1
Dim Sms As String * 120
Dim Otvet As String * 160 'сообщение, которое модуль будет отправлять
Dim Sk As String * 120
Dim F As Byte
'Dim Error As Byte 'переменная считающая попытки достучаться до модуля перед перезагрузкой ?????????????????????????????????
'Dim U As Byte 'счетчик пустых циклов, если переполнился то выход из цикла подпрограммы getline ?????????????????????????????????????/
Dim In1str As String * 1 ' As Byte
Dim Out1str As String * 1
Dim Pirsend As Bit 'переменная для разрешения отправки сообщения по срабатыванию датчика движения
Dim Pirsendstr As String * 3
Pirsend = 0 'разрещение отсыла сообщений
Dim T As Byte 'температура
Dim Sign As String * 5 'знак температуры
Dim Byte0 As Byte
Dim Byte1 As Byte
Dim T1 As Byte
Dim T2 As Byte
Dim Tstr As String * 4
Dim Battstr As String * 4
'--------------------------------------------------------------------------------------
'Const Phonenumber = "+xxxxxxxxxxxx" 'номер на который будут отправляться смс
Dim Phonenumbereeprom As Eram String * 12 'переменная с телефонным номером хозяина
Dim Phonenumber As String * 12
Phonenumber = Phonenumbereeprom 'достаем номер из энергонезависимой памяти микроконтроллера
'предварительные настройки
'********************************************************
Led = 1
Wait 5
Print "AT+CMGF=1" 'включаем текстовый формат сообщений
Waitms 500
Print "AT+CLIP=1" 'определение номера входящего вызова
Wait 2
''Print "AT+CMIC=0,10"
''Waitms 500
''Print "AT+CMIC=1,10"
''Waitms 500
Led = 0
Flushbuf
'###########################################################################
'Основная программа
'###########################################################################
Do
Led = 1
Gosub 18b20 'температура с датчика
Gosub Readsms 'проверка буфера на наличие входящего сообщения
Gosub Readfirstsms 'читаем первую смс, если есть
Gosub Checksms 'выполняем подпрограмму с смс
Led = 0
Wait 5
Loop
End
'подпрограмма для разбора сообщения модуля
'=======================
Sub Getline(s As String)
S = ""
Do
B = Inkey() 'берем символ из буфера в формате ASCII
Select Case B
Case 0 'возвращает в случае пустого буфера
Case 13 'возврат каретки (Enter), заместо него можно поставить пробел
Case 10 : If S <> "" Then Exit Do 'конец строки, значит выходит из подпрограммы
Case Else : If B > 31 Then S = S + Chr(b) 'печатаемые символы начинаются с кода 32 по таблице ASCII, из них составляем строку
End Select
Loop
End Sub
'очистка буфера
'=======================
Sub Flushbuf()
Waitms 100
Do
B = Inkey() 'забираем все из буфера
Loop Until B = 0
End Sub
'Подпрограмма для чтения смс
'=======================
Readsms:
R = Ischarwaiting() 'проверка наличия сообщения в буфере
If R = 1 Then
Getline Sk 'уходим на подпрограмму и смотрим что пришло
Z = Left(sk , 4) 'вытаскиваем левые 4 символа
If Z = "+CMT" Then 'если +СМТ, значит пришло смс которое надо прочитать
Sms_num = Right(sk , 2) 'смотрим какая по счету смс
Stmp = Left(sms_num , 1) 'смотрим первый символ слева
If Stmp = "," Then
Sms_num = Right(sk , 1) 'если там "," значит берем первый символ справа. это и будет номером пришедшего смс
End If
Wait 1
Number = ""
Print "AT+CMGR=" ; 'команда на чтение смс
Print Sms_num 'отправляем номер смски которую надо прочитать
Waitms 10
Getline Sk
Waitms 10
Getline Sk
Number = Mid(sk , 22 , 13) 'достаем номер с которого пришла смска
Sms = Sk 'здесь первая строка ответа
Waitms 10
Getline Sk 'смотрим, что в этой смс
Sms = Sk
Sms = Left(sms , 14) 'берем только первые 14 символов из смс (по кол-ву знакомест в строке)
Do
Led = 0
Waitms 100
Led = 1
Waitms 50
Incr F
Loop Until F = 10 'десять раз мигнем сетодиодом
F = 0
Print "AT+CMGDA=" ; Chr(34) ; "DEL ALL" ; Chr(34) 'удаление смс
End If
Waitms 100
Flushbuf 'очищаем буфер
End If
Return
'обработка команд из входящей смс
'============
Checksms:
If Sms = "Call" Then 'если call, модуль позвонит нам
Gosub Atd
Sms = ""
End If
If Sms = "Number" Then 'если сообщение содержит данный текст
Phonenumber = Number 'номер с которого пришла смс используется как номер для отправки сообщений
Phonenumbereeprom = Phonenumber 'записываем номер в энергонезависимую память
Otvet = "Number: " + Number + " write in EEPROM"
Gosub Sendsms
Sms = ""
End If
If Sms = "?" Then 'если придет знак вопроса отправим в ответ полное состояние модуля
Otvet = "Temp: " + Sign + Tstr + "C" + Chr(10) + "Power: " + Battstr + Chr(10) + "Send SMS: " + Pirsendstr + Chr(10) + "Out " + Chr(62) + Chr(32) + Out1str + Out2str + Out3str + Out4str + Out5str + Out6str + Out7str + Chr(10) + "In " + Chr(60) + Chr(32) + In1str + In2str + In3str + In4str + In5str + In6str + In7str
Gosub Sendsms
Sms = ""
End If
Return
'подпрограмма отправки смс
'=======================
Sendsms:
Print "AT+CMGS=" ; Chr(34) ; Phonenumber ; Chr(34)
Waitms 200
Print Otvet ; Chr(26)
Print Chr(26);
Wait 1
Print Chr(13)
'мигнем светодиодом
Do
Led = 0
Waitms 100
Led = 1
Waitms 50
Incr F
Loop Until F = 10
F = 0
Return
'подпрограмма дозвона модуля по номеру
'================
Atd:
Print "ATD" ; Phonenumber ; ";"
Waitms 100
Flushbuf
Return
'принудительное чтение первой смс из памяти
'это необходимо если прошляпили приход смс, во время выполнения одной из подпрограмм
'==================
Readfirstsms:
Print "AT+CMGR=1" 'команда на чтение смс
Waitms 10
Getline Sk
Waitms 10
Getline Sk
Number = Mid(sk , 22 , 13) 'достаем номер с которого пришла смска
Sms = Sk 'здесь первая строка ответа
Sms = Left(sms , 4)
If Sms = "+CMG" Then
Waitms 10
Getline Sk 'смотрим, что в этой смс
Sms = Sk
Sms = Left(sms , 14) 'берем только первые 14 символов из смс (по кол-ву знакомест в строке)
Do
Led = 0
Waitms 100
Led = 1
Waitms 50
Incr F
Loop Until F = 10
F = 0
Print "AT+CMGDA=" ; Chr(34) ; "DEL ALL" ; Chr(34) 'удаление всех смс
End If
Waitms 100
Flushbuf
Return
Почему после получения команды Firstnumber в памяти номер телефона не сохраняется? хотя ответное смс о том что номер сохранен - приходит. Дело в том, что после команды Firstnumber на остальные команды не реагирует и в терминале вылазит Error,
делал проверку сохранения номера телефона в erpoom, например чтобы при отправке команды info выдавалась команда Print phonenumber - по такой команде в терминале номер телефона отсутвует.
не могу понять почему не сохраняется номер телефона в памяти.
При этом этот же проект с дисплеем от нокии 5110 работает, номер сохраняется. в исходнике ниже код связанный с индикацией убран
код
Спойлер
$regfile = "m32def.dat"$crystal = 16000000
$baud = 19200
$hwstack = 64
$swstack = 64
$framesize = 100
Declare Sub Getline(s As String)
Declare Sub Flushbuf()
Config Serialin = Buffered , Size = 60
Config 1wire = Portb.4 'сюда лепим 18b20
Enable Interrupts
'подключение светодиода
'==============
Config Portd.2 = Output
Led Alias Portd.2
Led = 0
' входы для контроля
'===================
Config Porta = Input
Batt Alias Pina.0 'вход для контроля питания
' выходы для удаленного управления
'===================
Config Portc = Output
Out1 Alias Portc.1
'--------------------------------------------------------------------------------------
Dim Number As String * 12 'номер телефона
Dim Temp As String * 5
Dim S As String * 50
Dim B As Byte
Dim R As Byte
Dim Z As String * 15
Dim Sms_num As String * 2 'порядковый номер смс
Dim Stmp As String * 1
Dim Sms As String * 120
Dim Otvet As String * 160 'сообщение, которое модуль будет отправлять
Dim Sk As String * 120
Dim F As Byte
'Dim Error As Byte 'переменная считающая попытки достучаться до модуля перед перезагрузкой ?????????????????????????????????
'Dim U As Byte 'счетчик пустых циклов, если переполнился то выход из цикла подпрограммы getline ?????????????????????????????????????/
Dim In1str As String * 1 ' As Byte
Dim Out1str As String * 1
Dim Pirsend As Bit 'переменная для разрешения отправки сообщения по срабатыванию датчика движения
Dim Pirsendstr As String * 3
Pirsend = 0 'разрещение отсыла сообщений
Dim T As Byte 'температура
Dim Sign As String * 5 'знак температуры
Dim Byte0 As Byte
Dim Byte1 As Byte
Dim T1 As Byte
Dim T2 As Byte
Dim Tstr As String * 4
Dim Battstr As String * 4
'--------------------------------------------------------------------------------------
'Const Phonenumber = "+xxxxxxxxxxxx" 'номер на который будут отправляться смс
Dim Phonenumbereeprom As Eram String * 12 'переменная с телефонным номером хозяина
Dim Phonenumber As String * 12
Phonenumber = Phonenumbereeprom 'достаем номер из энергонезависимой памяти микроконтроллера
'предварительные настройки
'********************************************************
Led = 1
Wait 5
Print "AT+CMGF=1" 'включаем текстовый формат сообщений
Waitms 500
Print "AT+CLIP=1" 'определение номера входящего вызова
Wait 2
''Print "AT+CMIC=0,10"
''Waitms 500
''Print "AT+CMIC=1,10"
''Waitms 500
Led = 0
Flushbuf
'###########################################################################
'Основная программа
'###########################################################################
Do
Led = 1
Gosub 18b20 'температура с датчика
Gosub Readsms 'проверка буфера на наличие входящего сообщения
Gosub Readfirstsms 'читаем первую смс, если есть
Gosub Checksms 'выполняем подпрограмму с смс
Led = 0
Wait 5
Loop
End
'подпрограмма для разбора сообщения модуля
'=======================
Sub Getline(s As String)
S = ""
Do
B = Inkey() 'берем символ из буфера в формате ASCII
Select Case B
Case 0 'возвращает в случае пустого буфера
Case 13 'возврат каретки (Enter), заместо него можно поставить пробел
Case 10 : If S <> "" Then Exit Do 'конец строки, значит выходит из подпрограммы
Case Else : If B > 31 Then S = S + Chr(b) 'печатаемые символы начинаются с кода 32 по таблице ASCII, из них составляем строку
End Select
Loop
End Sub
'очистка буфера
'=======================
Sub Flushbuf()
Waitms 100
Do
B = Inkey() 'забираем все из буфера
Loop Until B = 0
End Sub
'Подпрограмма для чтения смс
'=======================
Readsms:
R = Ischarwaiting() 'проверка наличия сообщения в буфере
If R = 1 Then
Getline Sk 'уходим на подпрограмму и смотрим что пришло
Z = Left(sk , 4) 'вытаскиваем левые 4 символа
If Z = "+CMT" Then 'если +СМТ, значит пришло смс которое надо прочитать
Sms_num = Right(sk , 2) 'смотрим какая по счету смс
Stmp = Left(sms_num , 1) 'смотрим первый символ слева
If Stmp = "," Then
Sms_num = Right(sk , 1) 'если там "," значит берем первый символ справа. это и будет номером пришедшего смс
End If
Wait 1
Number = ""
Print "AT+CMGR=" ; 'команда на чтение смс
Print Sms_num 'отправляем номер смски которую надо прочитать
Waitms 10
Getline Sk
Waitms 10
Getline Sk
Number = Mid(sk , 22 , 13) 'достаем номер с которого пришла смска
Sms = Sk 'здесь первая строка ответа
Waitms 10
Getline Sk 'смотрим, что в этой смс
Sms = Sk
Sms = Left(sms , 14) 'берем только первые 14 символов из смс (по кол-ву знакомест в строке)
Do
Led = 0
Waitms 100
Led = 1
Waitms 50
Incr F
Loop Until F = 10 'десять раз мигнем сетодиодом
F = 0
Print "AT+CMGDA=" ; Chr(34) ; "DEL ALL" ; Chr(34) 'удаление смс
End If
Waitms 100
Flushbuf 'очищаем буфер
End If
Return
'обработка команд из входящей смс
'============
Checksms:
If Sms = "Call" Then 'если call, модуль позвонит нам
Gosub Atd
Sms = ""
End If
If Sms = "Number" Then 'если сообщение содержит данный текст
Phonenumber = Number 'номер с которого пришла смс используется как номер для отправки сообщений
Phonenumbereeprom = Phonenumber 'записываем номер в энергонезависимую память
Otvet = "Number: " + Number + " write in EEPROM"
Gosub Sendsms
Sms = ""
End If
If Sms = "?" Then 'если придет знак вопроса отправим в ответ полное состояние модуля
Otvet = "Temp: " + Sign + Tstr + "C" + Chr(10) + "Power: " + Battstr + Chr(10) + "Send SMS: " + Pirsendstr + Chr(10) + "Out " + Chr(62) + Chr(32) + Out1str + Out2str + Out3str + Out4str + Out5str + Out6str + Out7str + Chr(10) + "In " + Chr(60) + Chr(32) + In1str + In2str + In3str + In4str + In5str + In6str + In7str
Gosub Sendsms
Sms = ""
End If
Return
'подпрограмма отправки смс
'=======================
Sendsms:
Print "AT+CMGS=" ; Chr(34) ; Phonenumber ; Chr(34)
Waitms 200
Print Otvet ; Chr(26)
Print Chr(26);
Wait 1
Print Chr(13)
'мигнем светодиодом
Do
Led = 0
Waitms 100
Led = 1
Waitms 50
Incr F
Loop Until F = 10
F = 0
Return
'подпрограмма дозвона модуля по номеру
'================
Atd:
Print "ATD" ; Phonenumber ; ";"
Waitms 100
Flushbuf
Return
'принудительное чтение первой смс из памяти
'это необходимо если прошляпили приход смс, во время выполнения одной из подпрограмм
'==================
Readfirstsms:
Print "AT+CMGR=1" 'команда на чтение смс
Waitms 10
Getline Sk
Waitms 10
Getline Sk
Number = Mid(sk , 22 , 13) 'достаем номер с которого пришла смска
Sms = Sk 'здесь первая строка ответа
Sms = Left(sms , 4)
If Sms = "+CMG" Then
Waitms 10
Getline Sk 'смотрим, что в этой смс
Sms = Sk
Sms = Left(sms , 14) 'берем только первые 14 символов из смс (по кол-ву знакомест в строке)
Do
Led = 0
Waitms 100
Led = 1
Waitms 50
Incr F
Loop Until F = 10
F = 0
Print "AT+CMGDA=" ; Chr(34) ; "DEL ALL" ; Chr(34) 'удаление всех смс
End If
Waitms 100
Flushbuf
Return
Re: BASCOM AVR в вопросах и ответах
Люди добрые, помогите... Где скачать Bascom 2.0.7.8 с таблеткой.oled дисплей не компилирует 2.0.7.1.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Есть 2.0.8.3.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Если поделитесь буду премного благодарен...!
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Сразу в личку отправил. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Спасибо! 
Re: BASCOM AVR в вопросах и ответах
Если ввести в поисковик Bascom 2.0.7.8 скачать или Bascom 2.0.8.3 скачать, ничего не находит?selco писал(а):Где скачать Bascom 2.0.7.8
- Adagumer
- Поставщик валерьянки для Кота
- Сообщения: 2283
- Зарегистрирован: Чт ноя 15, 2012 20:47:59
- Откуда: Крымск
Re: BASCOM AVR в вопросах и ответах
Попробуйте так:Мурик писал(а):ничего не находит?
- Вложения
-
- BASS.zip
- (13.91 КБ) 333 скачивания
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Да отправил я уже давно инсталлер, ну. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон