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

Обсуждаем контроллеры компании Atmel.
Ответить
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

Как сгенерировать случайное число, например с 100 по 999 ?
Сейсас сделано так - к числу 111 постоянно плюсуется 19 в переменные типа byte. Вот и получается все кроме случайных чисел.
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 900
Зарегистрирован: Чт авг 27, 2009 20:09:01
Откуда: Приднестровье г.Бендеры

Сообщение mr4ester »

не знаю поможет ли это

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

var = RND( limit ) 
это было раннее в форуме
а это взято из нэлпа

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

$regfile = "m48def.dat"                                     ' specify the used micro

$crystal = 4000000                                         ' used crystal frequency

$baud = 19200                                               ' use baud rate

$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space

 

Dim I As Word                                               ' dim variable

Do

 I = Rnd(40)                                               'get random number (0-39)

Print I                                                   'print the value

Wait 1                                                   'wait 1 second

Loop                                                       'for ever

End
Работа избавляет нас от трех великих зол: скуки, порока, нужды. (Вольтер)
Контактная информация:
Реклама
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

Спасибо, помогло :)
Контактная информация:
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

Внезапно перестал работать ЖКИ AC-162D-YJLY57H. Выдрал из таксофона...
Работал нормально месяца 2, потом вдруг засветились все пиксели одновременно, перезапустил схему и уже засветился только верхний ряд знакомест - так словно ни к чему не подключен.
Управляющий контроллер работает нормально, проверено на втором ЖКИ.
Программа написана баскоме.

Ума не приложу что могло случится... Работала схема в тот момент от аккумулятора 4,2В...

Кто сталкивался?
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Аватара пользователя
Сообщения: 900
Зарегистрирован: Чт авг 27, 2009 20:09:01
Откуда: Приднестровье г.Бендеры

Сообщение mr4ester »

может провод сигнальный отвалился?
Работа избавляет нас от трех великих зол: скуки, порока, нужды. (Вольтер)
Контактная информация:
Реклама
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

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

проверял сигнал на всех ногах ЖКИ, все гуд...
Контактная информация:
Реклама
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

Подскажите как в условии указать значения от и до?
Например есть -

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

if w = 5 and w1 = 20 then
то ... выполняем что то
end if

А как указать чтобы выполнялось действие, если переменная "w" находится в пределах от 5 до 20?
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

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

if w >= 5 and w1 =< 20 then
то ... выполняем что то
end if
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

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

сделал пока что так -

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

If W => 23 Or W =< 7 Then : Goto Displey2 : Else : Goto Displey1 : End If
Значит - с 23 по 7 утра выводит только час и минуты, а после и все остальное (календарь, напоминания, состояние освещения, температуру...).

Еще была идея - добавить еще одну переменную и в 23 делать ее 1 а в 7 обнулять. И в зависимости от этой переменной выводить данные на ЖКИ.
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

vanyap1 писал(а):так как регулировку яркости для данного индикатора нельзя применить
Для такого дисплея логичнее яркостью подсветки управлять (если она имеется, конечно). А урезать информацию на дисплее ночью как-то совсем не логично. Она же в глаза не светит. Если это не OLED, конечно...

Что же касается диапазона значений переменной, то всяко - разно можно проверять. И через Select Case в том числе.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

В том то и дело что индикатор OLED... Гдето читал что его можно модернизировать для регулировки яркостью.
Урезать информацию не логично, но дисплей освещает целую комнату, так что придется. А до 6 утра итак не интересно какой там день, число.. А в 6 вернуть информативность.

Еще придется поставить опрос термометра на отдельный таймер, ато он опрашивается в каждые 30 сек, тоесть каждую минуту.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Сообщение max50 »

Сюдя по описанию это обычний дисплей 16х2 с желтой подсветкой. Поэтому подсветкой можно управлять обычным ШИМ-ом.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

vanyap1 писал(а):В том то и дело что индикатор OLED
А, ну тогда другое дело.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

max50 писал(а):Сюдя по описанию это обычний дисплей 16х2 с желтой подсветкой. Поэтому подсветкой можно управлять обычным ШИМ-ом.
Этот дисплей ни с того ни с сего перестал работать.

А тот который в часах - WEH001602DBPP5N00000. Описание у меня есть.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Сообщение max50 »

Теперь понятно.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

vanyap1 писал(а):Не, так не пойдет...
Так это немного модифицированный ВАШ код.
Нужно было вам правильно написать, а не внести ошибку в имя переменной.
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

Спасибо, я уже разобрался :)
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область

Сообщение Gordon Shumway »

Всем доброго времени суток !

Появился вопрос. Глупый вопрос, я полагаю, но тем не менее...

Имеется переменная типа bit, в процессе работы программы принимает значения "0" или "1".
В какой-то момент мне нужно обязательно сохранить значение этой переменной в eeprom, чтобы позже восстановить.
Иначе логика работы девайса нарушится. Но Bascom при компиляции ругается на строку c writeeeprom, а переменные типа byte пишет в eeprom нормально...
С уважением,
Алексей.
Контактная информация:
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина

Сообщение vanyap1 »

У меня тоже была такая проблема. Решил. Сделал переменную типа byte, и обнулял если больше 2.
А то никак не хотел в епром сохранять.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37

Сообщение dimon-790 »

кто знает ? как можно вытянуть числа из 5-ти байт в одну переменную ? в каждом байте число от 0 до 9
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Контактная информация:
Ответить

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