BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Цобачкин
Родился
Сообщения: 10
Зарегистрирован: Пт окт 27, 2017 19:11:18

Re: BASCOM AVR в вопросах и ответах

Сообщение Цобачкин »

А что у вас возращает остаток от деления? У меня - чепуху.

Код: Выделить всё

$regfile = "m48def.dat"
$sim

Dim L1 As Integer , L2 As Integer , L3 As Integer

Input "number1 " , L1
Input "number2 " , L2

Print "MOD: "
L3 = L1 Mod L2 : Print L3
Print "DIV: "
L3 = L1 / L2 : Print L3
End
Тихий демон
Родился
Сообщения: 17
Зарегистрирован: Ср ноя 04, 2009 12:49:25
Откуда: Урал

Re: BASCOM AVR в вопросах и ответах

Сообщение Тихий демон »

number1 33
number2 15
MOD:
3
DIV:
2
Цобачкин
Родился
Сообщения: 10
Зарегистрирован: Пт окт 27, 2017 19:11:18

Re: BASCOM AVR в вопросах и ответах

Сообщение Цобачкин »

Решил посмотреть на баском, у меня 2081.
Результат
number1 1234
number2 4321
MOD:
1234
DIV:
0

По идее 1234/4321 = 0,2855820411942
Последний раз редактировалось Цобачкин Вс окт 28, 2018 11:03:16, всего редактировалось 1 раз.
Тихий демон
Родился
Сообщения: 17
Зарегистрирован: Ср ноя 04, 2009 12:49:25
Откуда: Урал

Re: BASCOM AVR в вопросах и ответах

Сообщение Тихий демон »

Dim L1 As Integer , L2 As Integer , L3 As Integer - переменные целочисленные, без дробей.
Хотите с дробями, надо тип Single.
Dim L1 As Single, … и т.д.
Цобачкин
Родился
Сообщения: 10
Зарегистрирован: Пт окт 27, 2017 19:11:18

Re: BASCOM AVR в вопросах и ответах

Сообщение Цобачкин »

Но в хелпе вроде указано что может.

number1 123456789
number2 987654321
MOD:
123456789
DIV:
0

Это результат для кода

Код: Выделить всё

$regfile = "m48def.dat"
$sim

Dim L1 As Long , L2 As Long , L3 As Long

Input "number1 " , L1
Input "number2 " , L2

Print "MOD: "
L3 = L1 Mod L2 : Print L3
Print "DIV: "
L3 = L1 / L2 : Print L3

End


В общем, косяк. Надо писать свою функцию MyMOD. Получается, компилятор не покрыт даже базовым математическим тестом.
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: BASCOM AVR в вопросах и ответах

Сообщение *Trigger* »

А что Вам не нравится? Остаток числа 123456789 при делении на 987654321 равен, как ни странно, 123456789.
https://ru.wikipedia.org/wiki/Деление_с_остатком
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Цобачкин
Родился
Сообщения: 10
Зарегистрирован: Пт окт 27, 2017 19:11:18

Re: BASCOM AVR в вопросах и ответах

Сообщение Цобачкин »

Вы правы, я недопонимал операцию MOD.
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение Novice user »

MOD-это остаток от деления,например 7/3=2 и остаток=1,то есть 7 MOD 3=1
Аватара пользователя
Адвансед
Встал на лапы
Сообщения: 98
Зарегистрирован: Вс мар 11, 2012 23:06:08
Откуда: Казань

Re: BASCOM AVR в вопросах и ответах

Сообщение Адвансед »

Здравствуйте, как выйти из цикла? А именно:

Цикл
Do
Что то считаем, скажем wait 600 (10минут)
Loop

Как выйти из цикла нажатием кнопки не дожидаясь завершения отсчета 10 минут?
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение Novice user »

Do
Что то считаем, скажем wait 600 (10минут)
Loop until кнопка=0
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Выход из такого цикла превращается в увлекательную игру. :tea:
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Тихий демон
Родился
Сообщения: 17
Зарегистрирован: Ср ноя 04, 2009 12:49:25
Откуда: Урал

Re: BASCOM AVR в вопросах и ответах

Сообщение Тихий демон »

Насколько точная задержка нужна?

Добавлено after 6 minutes 13 seconds:
Dim Т As word

...
t = 0
do
incr t
waitms 100
loop until t = 6000 or кнопка нажата

Ну как то так.
rojnov
Встал на лапы
Сообщения: 127
Зарегистрирован: Вс мар 27, 2011 07:48:48
Откуда: г. Екатеринбург

Re: BASCOM AVR в вопросах и ответах

Сообщение rojnov »

Приветствую всех. Прошу помочь победить маленький кусочек кода, нужный для работы одного

устройства. Для упрощения схемы выходная часть заменена на светодиод. Алгоритм работы

такой:
Исходное состояние - тумблер выключен, под герконом - магнит.
1. Включаем тумблер - светик должен гореть независимо от расположения магнита и геркона.
2. Выключаем тумблер - светик должен погаснуть при поднесении магнита к геркону.

Вроде элементарная задачка, но у меня светик не горит, а мигает. Никак не могу понять,

как это дело исправить. Подскажите, буду очень благодарен.
Код маленький, поэтому вставлю его прямо в текст

Код: Выделить всё

Config Pinb.3 = Input
Config Pinb.4 = Input
Config Portb.2 = Output

Gerkon Alias Pinb.3
Pusk Alias Pinb.4
Rele Alias Portb.2

Do
If Pusk = 0 Then Set Rele
If Pusk = 1 Then
   If Gerkon = 0 Then Reset Rele
End If

Loop
Вложения
Схема.jpg
(29.57 КБ) 424 скачивания
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение Novice user »

Может светодиод мигающий?и надо так
Config Portb.3 = Input
Config Portb.4 = Input
остальное верно вроде
rojnov
Встал на лапы
Сообщения: 127
Зарегистрирован: Вс мар 27, 2011 07:48:48
Откуда: г. Екатеринбург

Re: BASCOM AVR в вопросах и ответах

Сообщение rojnov »

Нет, светодиод обычный, только что проверил.
И, насколько я знаю, на входе - Pin, а Port - на выходе. По крайней мере, я всегда так делал.
koms48
Встал на лапы
Сообщения: 132
Зарегистрирован: Пт окт 19, 2012 05:54:55

Re: BASCOM AVR в вопросах и ответах

Сообщение koms48 »

В протеусе нормально.
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 10
$swstack = 10
$framesize = 30

Config Pinb.3 = Input
Config Pinb.4 = Input
Config Portb.2 = Output

Gerkon Alias Pinb.3
Pusk Alias Pinb.4
Rele Alias Portb.2

Do
If Pusk = 0 Then Set Rele
If Pusk = 1 Then
If Gerkon = 0 Then Reset Rele
End If

Loop
Давай фузы посмотрим.
rojnov
Встал на лапы
Сообщения: 127
Зарегистрирован: Вс мар 27, 2011 07:48:48
Откуда: г. Екатеринбург

Re: BASCOM AVR в вопросах и ответах

Сообщение rojnov »

Добавил скриншот фьюзов. Все - по умолчанию.

Добавлено after 8 minutes 31 second:
Проверил еще раз - светик мигает с частотой примерно 5 Гц
Вложения
Фьюзы.jpg
(125.6 КБ) 405 скачиваний
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Внешняя подтяжка входов есть?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
rojnov
Встал на лапы
Сообщения: 127
Зарегистрирован: Вс мар 27, 2011 07:48:48
Откуда: г. Екатеринбург

Re: BASCOM AVR в вопросах и ответах

Сообщение rojnov »

Внешняя подтяжка - сопротивления по 10к
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Собрал в железе - все работает как положено, ничего не мигает. :solder: Попробуйте поменять порт, может в МК проблемы.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Ответить

Вернуться в «AVR»