Страница 42 из 304

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

Добавлено: Вт окт 12, 2010 21:04:43
radio-kot
aleksandr-zh писал(а): Я даже, в свое время, повёлся - пробовал А потом понял, что Симуляторы - ЛА-БУ-ДА!
А мартышке ОЧКИ мешали обрести счастье.

ОЧКИ плохие как PROTEUS. Шары мешают хорошим танцорам.

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

Добавлено: Вт окт 12, 2010 21:28:29
aleksandr-zh
конечно, Михаил, конечно!
надо же как-то ответить :)

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

Добавлено: Вт окт 12, 2010 22:47:19
kip96
Я, наверное, не туда попал! :dont_know:
Пойду в "флудилку", может там на мой вопрос по BASCOMу ответят :kill:

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

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

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

for (mask=(direct)? 1:0x80;mask;mask=(direct)? mask<<1:mask>>1)
         PORTW=(*byte&mask)? PORTW|(1<<BIT):PORTW&~(1<<BIT);
"Сердце" функции... Между прочим, хорошо работает - без джиттера. И на мой взгляд, предельно понятна - не видел ее год-полтора, сейчас глянул и сразу вспомнил...

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

Добавлено: Вт окт 12, 2010 23:24:36
Мурик
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

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

Добавлено: Ср окт 13, 2010 08:17:05
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:

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

Добавлено: Ср окт 13, 2010 09:10:58
PB_EXPERT
kip96 писал(а):а вот 0.125-никак
А что получаете в место 0.125?

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

Добавлено: Ср окт 13, 2010 12:18:07
kip96
чё, издеваетесь?

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

Добавлено: Ср окт 13, 2010 13:06:33
PB_EXPERT
Никто не издевается!
Просто вы пишите что не можете получить именно 0.125.
Но ведь всё равно что-то получаете в место этого? Может, ноль, или -1 или ещё что-то....
Вопрос что?

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

Добавлено: Вт окт 19, 2010 12:39:09
dubishe
А вот такй вопрос. У меня после вычислений получилось число с 9 знаков после запятой. Как его привести к 2 знакам после запятой?

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

Добавлено: Вт окт 19, 2010 18:11:40
ВНН
Для строк
Dim S As String * 10
S = "12345"
S = Format(s , "000.00")
Print S


Z = Fusing(s , "#.##")
Print Fusing(s , "#.##")
Print Fusing(s , "#.&&")

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

Добавлено: Ср окт 20, 2010 18:55:17
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
???

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

Добавлено: Ср окт 20, 2010 20:21:09
ВНН
Ну и что получим в итоге S = A * 1.455 = s(String*1)=a(Single)*1.455 . Посмотри в Хелп работа со строковыми переменными.

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

Добавлено: Ср окт 20, 2010 21:39:28
dubishe
C переменными все понятно. Эт я набросал сугубо для проверки команды. Я непойму как format работает.

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

Добавлено: Чт окт 21, 2010 01:52:48
ВНН
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"

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

Добавлено: Вс окт 24, 2010 16:23:31
Igor_67
По моим скромным наблюдениям, Fusing не всегда корректно работает с переменными типа Single. Если по ходу программы количество знаков после запятой будет всегда одно и то же, т.е. какое-то значение Value, то лучше сразу прописать в начале : CONFIG SINGLE = SCIENTIFIC , DIGITS = value. Мне кажется так гораздо удобнее и компактнее в плане кода.

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

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

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

Добавлено: Пт окт 29, 2010 21:49:05
Igor_67
Alex_Megavolt_79 писал(а):Товарищи усатые, будьте так любезны, пожалуйста, объяснить на пальцах как на МК измерять частоту, период, длительность. Может есть у кого пример на васике. Заранее огромное спасибо. :dont_know:
Частота измеряется очень просто-по внешним прерываниям INT0 или INT1. В обработчике прерывания инкрементируешь переменную-счетчик и выводишь на индикацию результат. Период и длительность можно подсчитать по известным формулам, исходя из частоты...


А вот у меня такой вопрос...
почему отрицательные температуры с датчика DS18B20 врут на 1 градус? Прилагаю проект в Баскоме 1.11.9.8 и проект в Протеусе 7.7. Где тут засада???

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

Добавлено: Сб окт 30, 2010 00:52:47
Мурик
Igor_67 писал(а):Частота измеряется очень просто-по внешним прерываниям INT0 или INT1.
Это будет слишком расточительное использование ресурсов контроллера при измерении всоких частот.
Лучше использовать для этого прерывания по переполнению таймера-счетчика.
Igor_67 писал(а):почему отрицательные температуры с датчика DS18B20 врут на 1 градус?
Я как-то экспериментирвал, все нармально было.

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

Добавлено: Сб окт 30, 2010 07:18:24
Igor_67
Я ведь специально весь проект прикрепил... Факт, как говорится, налицо!