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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

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

Сообщение radio-kot »

aleksandr-zh писал(а): Я даже, в свое время, повёлся - пробовал А потом понял, что Симуляторы - ЛА-БУ-ДА!


А мартышке ОЧКИ мешали обрести счастье.

ОЧКИ плохие как PROTEUS. Шары мешают хорошим танцорам.
Будете проходить мимо- проходите!
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

Сообщение aleksandr-zh »

конечно, Михаил, конечно!
надо же как-то ответить :)
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

Я, наверное, не туда попал! :dont_know:
Пойду в "флудилку", может там на мой вопрос по BASCOMу ответят :kill:
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Аватара пользователя
Goodefine
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

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

Сообщение Goodefine »

aleksandr-zh писал(а):...у меня даже файлик есть для ДЕКРИПТОВАНИЯ ужасов Си :)...
...А маску по-человечески наложить Си-стам вломы, наверное? :)

Нормально там маски наложены кстати. Вы такой код прочтите:

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

for (mask=(direct)? 1:0x80;mask;mask=(direct)? mask<<1:mask>>1)
         PORTW=(*byte&mask)? PORTW|(1<<BIT):PORTW&~(1<<BIT);

"Сердце" функции... Между прочим, хорошо работает - без джиттера. И на мой взгляд, предельно понятна - не видел ее год-полтора, сейчас глянул и сразу вспомнил...
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

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

kip96 писал(а):Я, наверное, не туда попал! :dont_know:
Пойду в "флудилку", может там на мой вопрос по BASCOMу ответят :kill:

Про термометры смотри здесь
http://bascomavr.3bb.ru/viewtopic.php?id=232
http://bascomavr.3bb.ru/viewtopic.php?id=209
http://bascomavr.3bb.ru/viewtopic.php?id=169
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

Спасибо!
Но повторюсь-
Смотрим к примеру код с последней ссылки

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

T1 = Byte0 / 16                                             ' Сдвигаем нулевой байт вправо на 4 бита (2*2*2*2=16)
T2 = Byte1 * 16                                             ' Сдвигаем первый байт влево на 4 бита (2*2*2*2=16)
T1 = T1 + T2
Hh = Fix(t1)                                                'отсекаем от температуры все после запятой
Ttemp = T1 * 10                                             '
Mm = Ttemp Mod 10                                           'берем десятичную часть температуры
Locate X , 1                                                'указываем куда вывести на дисплей
Lcd Signtemperatura ; Hh ; "." ; Mm                         'выводим целую часть потом рисуем т

смотрим справочник-
+10.125°C
0000 0000 1010 0010
-10.125°C
1111 1111 0101 1110.

повторяюсь
при инвертировании отрицательной температуры -10 получается, а вот 0.125-никак
Кто как решил этот?

Конечно, Си и Протеус важнее в теме-BASCOM AVR в вопросах и ответах обсудить, но всё-же надеюсмь! :roll:
ЗЫ
Простите за мой "франзусский" :oops:
Все делают ошибки, только мудрецы - новые, а дураки - старые.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

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

Сообщение PB_EXPERT »

kip96 писал(а):а вот 0.125-никак
А что получаете в место 0.125?
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

чё, издеваетесь?
Все делают ошибки, только мудрецы - новые, а дураки - старые.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

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

Сообщение PB_EXPERT »

Никто не издевается!
Просто вы пишите что не можете получить именно 0.125.
Но ведь всё равно что-то получаете в место этого? Может, ноль, или -1 или ещё что-то....
Вопрос что?
Аватара пользователя
dubishe
Встал на лапы
Сообщения: 86
Зарегистрирован: Чт авг 26, 2010 18:17:24
Откуда: Харьков
Контактная информация:

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

Сообщение dubishe »

А вот такй вопрос. У меня после вычислений получилось число с 9 знаков после запятой. Как его привести к 2 знакам после запятой?
Аватара пользователя
ВНН
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Сб дек 13, 2008 09:03:43
Откуда: г.Советская Гавань

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

Сообщение ВНН »

Для строк
Dim S As String * 10
S = "12345"
S = Format(s , "000.00")
Print S


Z = Fusing(s , "#.##")
Print Fusing(s , "#.##")
Print Fusing(s , "#.&&")
Я тоже белый и пушистый и также как и Вы ловлю мышей.
С уважением ВНН.
Аватара пользователя
dubishe
Встал на лапы
Сообщения: 86
Зарегистрирован: Чт авг 26, 2010 18:17:24
Откуда: Харьков
Контактная информация:

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

Сообщение dubishe »

Dim A As Single
Dim S As String * 1

123:
A = Getadc(0)
S = A * 1.455
S = Format(s , "000.00")
Lcd S
Wait 1
Goto 123
???
Аватара пользователя
ВНН
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Сб дек 13, 2008 09:03:43
Откуда: г.Советская Гавань

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

Сообщение ВНН »

Ну и что получим в итоге S = A * 1.455 = s(String*1)=a(Single)*1.455 . Посмотри в Хелп работа со строковыми переменными.
Я тоже белый и пушистый и также как и Вы ловлю мышей.
С уважением ВНН.
Аватара пользователя
dubishe
Встал на лапы
Сообщения: 86
Зарегистрирован: Чт авг 26, 2010 18:17:24
Откуда: Харьков
Контактная информация:

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

Сообщение dubishe »

C переменными все понятно. Эт я набросал сугубо для проверки команды. Я непойму как format работает.
Аватара пользователя
ВНН
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Сб дек 13, 2008 09:03:43
Откуда: г.Советская Гавань

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

Сообщение ВНН »

Format Форматирует входную строку согласно некоторому формату.

Dim Vxod As String * 6
Dim Vyxod As String * 8
Vxod = "38.869"
Vyxod = Format(Vxod, "+000.00")
'Vyxod = "+038.86"

Fusing Форматирует переменную типа Single согласно формату строки, при необходимости выполняет округление.

Dim Xval as Single
Dim Pstring as String*4
Xval = 16.379
Pstring = Fusing(Xval, "##.#")
Pstring = "16.4"
Я тоже белый и пушистый и также как и Вы ловлю мышей.
С уважением ВНН.
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

По моим скромным наблюдениям, Fusing не всегда корректно работает с переменными типа Single. Если по ходу программы количество знаков после запятой будет всегда одно и то же, т.е. какое-то значение Value, то лучше сразу прописать в начале : CONFIG SINGLE = SCIENTIFIC , DIGITS = value. Мне кажется так гораздо удобнее и компактнее в плане кода.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
Alex_Megavolt_79
Грызет канифоль
Сообщения: 262
Зарегистрирован: Пт окт 30, 2009 22:33:56
Откуда: Санкт-Петербург

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

Сообщение Alex_Megavolt_79 »

Товарищи усатые, будьте так любезны, пожалуйста, объяснить на пальцах как на МК измерять частоту, период, длительность. Может есть у кого пример на васике. Заранее огромное спасибо. :dont_know:
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Alex_Megavolt_79 писал(а):Товарищи усатые, будьте так любезны, пожалуйста, объяснить на пальцах как на МК измерять частоту, период, длительность. Может есть у кого пример на васике. Заранее огромное спасибо. :dont_know:

Частота измеряется очень просто-по внешним прерываниям INT0 или INT1. В обработчике прерывания инкрементируешь переменную-счетчик и выводишь на индикацию результат. Период и длительность можно подсчитать по известным формулам, исходя из частоты...


А вот у меня такой вопрос...
почему отрицательные температуры с датчика DS18B20 врут на 1 градус? Прилагаю проект в Баскоме 1.11.9.8 и проект в Протеусе 7.7. Где тут засада???
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

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

Igor_67 писал(а):Частота измеряется очень просто-по внешним прерываниям INT0 или INT1.
Это будет слишком расточительное использование ресурсов контроллера при измерении всоких частот.
Лучше использовать для этого прерывания по переполнению таймера-счетчика.

Igor_67 писал(а):почему отрицательные температуры с датчика DS18B20 врут на 1 градус?
Я как-то экспериментирвал, все нармально было.
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

Я ведь специально весь проект прикрепил... Факт, как говорится, налицо!
Цапу крутить надо!!! Ку или не ку?
Ответить

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