BASCOM AVR в вопросах и ответах
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ну дак передавайте ещё дополнительные символы, в зависимости от значения переменной (<10, <100, =100).
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Либо FORMAT.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Поясните как это сделать практически, а то мне компилятор ошибки видает если я пытаюсь использовать FORMAT.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Показывайте что пишите, и какие ошибки выдаёт компилятор.
Re: BASCOM AVR в вопросах и ответах
Собственно программа не моя, я только добавил одну переменную и строку 142.
- Вложения
-
- Новая папка.rar
- (60.28 КБ) 264 скачивания
Re: BASCOM AVR в вопросах и ответах
Поделитесь пожалуйста библиотекой glcdSSD1306-I2C.lib.
Не могу найти где скачать.
Не могу найти где скачать.
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
OLEGKARAS писал(а):Поясните как это сделать практически, а то мне компилятор ошибки видает если я пытаюсь использовать FORMAT.
Встаньте курсором на команду, и нажмите F1. У баскома шикарная справка с примерами. Касаемо же Вашей ошибки, то все ведь понятно:
string expected for assignment
Ожидается строка для назначения. Если синтаксис команды посмотреть, то можно увидеть что команда и принимает и возвращает строку:
Syntax
target = FORMAT(source, "mask")
Remarks
target
The string that is assigned with the formatted string.
source
The source string that holds the number.
А у Вас:
Код: Выделить всё
Dim Urms As Long"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
AtTiny13. Странные глюки программного UART.
Мне необходимо менять скорость передачи, отправляя часть посылок на одной скорости, а часть на другой.
написал тестовую программу. Не работает.
Программа повисает, не отправляя ничего в порт, даже на скорости 9600. До мигалки тоже не доходит. При этом, На TxD (portb.3) произвольно меняется лог. уровень с низкой скоростью.
Если заремарить строку с Baud#1 , 19200, - корректно уходят 2 посылки на скорости 9600, диод мигает.
Добавлено:
C "переоткрыванием" порта на другой скорости, - ничего не получается. Даже после команды Close #1, повторная команда Open вызывает ошибку, типа порт уже открыт.
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 16
$swstack = 8
$framesize = 16
config portb.4 = output 'LED
Open "comb.3:9600,8,n,1" For Output As #1
Print #1 , "Program UART 9600"
Waitms 250
Baud#1 , 19200
Print #1 , "Program UART 19200"
do
waitms 250
toggle portb.4
Loop
End
Мне необходимо менять скорость передачи, отправляя часть посылок на одной скорости, а часть на другой.
написал тестовую программу. Не работает.
Программа повисает, не отправляя ничего в порт, даже на скорости 9600. До мигалки тоже не доходит. При этом, На TxD (portb.3) произвольно меняется лог. уровень с низкой скоростью.
Если заремарить строку с Baud#1 , 19200, - корректно уходят 2 посылки на скорости 9600, диод мигает.
Добавлено:
C "переоткрыванием" порта на другой скорости, - ничего не получается. Даже после команды Close #1, повторная команда Open вызывает ошибку, типа порт уже открыт.
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 16
$swstack = 8
$framesize = 16
config portb.4 = output 'LED
Open "comb.3:9600,8,n,1" For Output As #1
Print #1 , "Program UART 9600"
Waitms 250
Baud#1 , 19200
Print #1 , "Program UART 19200"
do
waitms 250
toggle portb.4
Loop
End
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: BASCOM AVR в вопросах и ответах
serg_svd писал(а):Поделитесь пожалуйста библиотекой glcdSSD1306-I2C.lib.
Не могу найти где скачать.
- Вложения
-
- glcdSSD1306-I2C.zip
- (4.71 КБ) 435 скачиваний
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Победил глюк с программным UART.
Всё оказалось просто, и на баскомовском сайте, в разделе помощь, про это сказано.
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 16
$swstack = 8
$framesize = 16
config portb.4 = output 'LED
Open "comb.3:9600,8,n,1" For Output As #1
Baud#1 , 9600
Print #1 , "Program UART 9600"
Waitms 250
Baud#1 , 19200
Print #1 , "Program UART 19200"
do
waitms 250
toggle portb.4
Loop
End
Всё оказалось просто, и на баскомовском сайте, в разделе помощь, про это сказано.
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 16
$swstack = 8
$framesize = 16
config portb.4 = output 'LED
Open "comb.3:9600,8,n,1" For Output As #1
Baud#1 , 9600
Print #1 , "Program UART 9600"
Waitms 250
Baud#1 , 19200
Print #1 , "Program UART 19200"
do
waitms 250
toggle portb.4
Loop
End
- xorkrus
- Нашел транзистор. Понюхал.
- Сообщения: 151
- Зарегистрирован: Сб ноя 19, 2011 20:13:47
- Откуда: Тамбов
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Уважаемые, подскажите в чем косяк в нижеприведенном коде. После включения моргает, при нажатии отключается, но включаться уже не включается. Перелопатил толпу материала, но все равно ощущение что я упустил какую-то... фигнюёвину.
Спойлер
Код: Выделить всё
$regfile = "attiny13a.dat"
$crystal = 4000000
$hwstack = 10
$swstack = 20
$framesize = 30
'Pb0 - Led
'Pb2 - Red led
'Pb1 - Button
Config Portb = Output
Config Portb.1 = Input
Config Int0 = Change
Dim Lmode As Bit
Lmode = 1
On Int0 Btnint
Enable Interrupts
Enable Int0
Do
If Lmode = 1 Then
Set Portb.0
Waitms 200
Reset Portb.0
Waitms 200
End If
If Lmode = 0 Then
Powerdown
End If
Loop
Btnint:
If Lmode = 1 Then Lmode = 0 Else Lmode = 1
Return
End
Демократии нет и не будет!
Государство - это я!
Государство - это я!
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
А тайни13 не выходит из глубокого сна по изменению уровня на прерывании INT0. Только по Low Level
$crystal = 4000000
$hwstack = 10
$swstack = 20
$framesize = 30
'Pb0 - Led
'Pb2 - Red led
'Pb1 - Button
Config Portb = Output
Config Portb.1 = Input
Set Portb.1
Config Int0 = low level
Dim Lmode As Bit
Lmode = 1
On Int0 Btnint
Enable Interrupts
Enable Int0
Do
If Lmode = 1 Then
Set Portb.0
Waitms 200
Reset Portb.0
Waitms 200
End If
If Lmode = 0 Then
Powerdown
End If
Loop
Btnint:
If Lmode = 1 Then Lmode = 0 Else Lmode = 1
Return
End
У AtTiny13 есть прерывание по изменению состояния выводов - PCINT0
Можно его задействовать:
......
Enable Interrupts
Enable Pcint0
Pcmsk = 2 ' запрещаем реагировать на все изменения состояния выводов, кроме PCINT1 (portb.1, 6-ая ножка)
On Pcint0 Btnint
......
Спойлер
$regfile = "attiny13a.dat"$crystal = 4000000
$hwstack = 10
$swstack = 20
$framesize = 30
'Pb0 - Led
'Pb2 - Red led
'Pb1 - Button
Config Portb = Output
Config Portb.1 = Input
Set Portb.1
Config Int0 = low level
Dim Lmode As Bit
Lmode = 1
On Int0 Btnint
Enable Interrupts
Enable Int0
Do
If Lmode = 1 Then
Set Portb.0
Waitms 200
Reset Portb.0
Waitms 200
End If
If Lmode = 0 Then
Powerdown
End If
Loop
Btnint:
If Lmode = 1 Then Lmode = 0 Else Lmode = 1
Return
End
У AtTiny13 есть прерывание по изменению состояния выводов - PCINT0
Можно его задействовать:
......
Enable Interrupts
Enable Pcint0
Pcmsk = 2 ' запрещаем реагировать на все изменения состояния выводов, кроме PCINT1 (portb.1, 6-ая ножка)
On Pcint0 Btnint
......
- xorkrus
- Нашел транзистор. Понюхал.
- Сообщения: 151
- Зарегистрирован: Сб ноя 19, 2011 20:13:47
- Откуда: Тамбов
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Microtech писал(а):У AtTiny13 есть прерывание по изменению состояния выводов - PCINT0
Оно тоже выводит из глубокого сна?
Спасибо за пример, с PCINTx у меня не пошло, потому привязался к INT0
Демократии нет и не будет!
Государство - это я!
Государство - это я!
Re: BASCOM AVR в вопросах и ответах
Мужики, подcкажите.
Принимаю с компа строку в 65 символов. Выбираю из неё нужный фрагмент. Пусть будет "5,1", к примеру.
Мне нужно преобразовать эту строковую переменную в числовую.
Dim A As String * 3
Dim B As Single
A = "5,1"
----------
B = Val(a) 'преобразовываем стоковую переменную в числовую, ожидая что будет B = 5,1
Но в итоге B = 5,0 получается. Выходит функция округляет дробное число до целого? Как тогда имея дробную переменную типа String преобразовать в дробную переменную типа Single без округления и потери чисел после запятой?
Принимаю с компа строку в 65 символов. Выбираю из неё нужный фрагмент. Пусть будет "5,1", к примеру.
Мне нужно преобразовать эту строковую переменную в числовую.
Dim A As String * 3
Dim B As Single
A = "5,1"
----------
B = Val(a) 'преобразовываем стоковую переменную в числовую, ожидая что будет B = 5,1
Но в итоге B = 5,0 получается. Выходит функция округляет дробное число до целого? Как тогда имея дробную переменную типа String преобразовать в дробную переменную типа Single без округления и потери чисел после запятой?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
А что по этому поводу говорит мануал по Баскому ? Может там есть какие стандартные функции ?
PS: Помниться, лет эдак 10 назад, я прогал на Бейсике, дак в нём можно было напрямую присваивать числовые переменные к строковым. Он сам делал преобразование.
Может и тут так ?
PS: Помниться, лет эдак 10 назад, я прогал на Бейсике, дак в нём можно было напрямую присваивать числовые переменные к строковым. Он сам делал преобразование.
Может и тут так ?
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Сейчас нет компилятора под рукой, но вроде как "," - запятая не является десятичной точкой "."
Re: BASCOM AVR в вопросах и ответах
Всё правильно. Запятая не канает. С точкой работает как надо.
-
6П3С
- Встал на лапы
- Сообщения: 140
- Зарегистрирован: Чт окт 08, 2009 20:13:30
- Откуда: Самарская обл.
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Добрый день всем. Народ, работал кто нибудь с микросхемой HX711 ? именно в Bascom , для ардуинки все есть проверял , работает. Есть пару вопросов по васику )
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: BASCOM AVR в вопросах и ответах
есть ли вариант управления дисплеем от сименс м65 L2F50126?попробовал библиотеку http://bascom.at.ua/load/lcd_epson_l2f50_c/1-1-0-38 выдает ошибки-нет шрифтов
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Про HX711
Там совсем простой протокол, вроде как.
Первая попавшаяся статья. Всё расписано.
https://hubstub.ru/circuit-design/74-ve ... ga16..html
Там совсем простой протокол, вроде как.
Первая попавшаяся статья. Всё расписано.
https://hubstub.ru/circuit-design/74-ve ... ga16..html