Страница 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
Я, наверное, не туда попал!
Пойду в "флудилку", может там на мой вопрос по
BASCOMу ответят

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 писал(а):Я, наверное, не туда попал!
Пойду в "флудилку", может там на мой вопрос по
BASCOMу ответят

Про термометры смотри здесь
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 в вопросах и ответах обсудить, но всё-же надеюсмь!
ЗЫ
Простите за мой "франзусский"

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
Товарищи усатые, будьте так любезны, пожалуйста, объяснить на пальцах как на МК измерять частоту, период, длительность. Может есть у кого пример на васике. Заранее огромное спасибо.

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

Частота измеряется очень просто-по внешним прерываниям 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
Я ведь специально весь проект прикрепил... Факт, как говорится, налицо!