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

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

Добавлено: Вс янв 29, 2012 22:49:20
edm2007
Там на самом деле не 1 градус ошибки при таких расчетах а 0,1. А минус ноль конечно будет появляться, ведь температура не меняется скачкообразно от 0 до -1. Есть ведь и -0,1C и все в том же духе. Это мы не выводим в данном случае десятые, но они ведь существуют. :) А чтобы этого нелепого минуса небыло, как раз и достаточно прибавить 1 к отрицательным значениям. Правда в этом случае мы немножко наврем (потому как при реальной температуре -0,1C мы сразу же будем показывать -1С), но я думаю что ничего страшного. :)

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

Добавлено: Вс янв 29, 2012 22:56:37
vanyap1
Фактически, для кода где нет десятых градуса оно актуально. А почему бы и не отображать для 0,1 градуса - минус?...

Но для погрешности в 0,1 градус я считаю ничего предпринимать не надо, ибо ds18b20 не обладает столь высокой точностью.

Мой пульт меня достал сцуко! Уже стырил код для обработки НЕК протокола, итак ничего не работает!

Но импульсы к МК идут 100500%, проверил. Настроил прерывания на подъем уровня и заработало, но мне не надо реагировать на все что в пределах 36 КГц.... Я в ужасе от этих пультов.

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

Добавлено: Вс янв 29, 2012 23:03:19
edm2007
Ну разумеется когда десятые выводятся то минус нужен. И действительно погрешность 0,1C в минусах это ерунда. Но у автора-то лишь целые. И тут минус ноль смотрится как-то нелепо. Впрочем, в этом случае можно не заморачиваться совсем, а просто написать: если температура равна 0, то на месте знака - пусто. А +0,3C там на самом деле, или -0,7С нам уже не важно. Все равно десятых нет. Так даже лучше и точнее будет, и ничего прибавлять не надо.

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

Добавлено: Вс янв 29, 2012 23:18:12
mr4ester
вообщем то я только сегодня переписал программу под десятые градуса :)) и случайно наткнулся на то что при отрицательной температуре прибавляют 1, меня это с смутило и решил спросить, выходит с вышесказанными разъяснениями, придется убрать это действие, спасибо за разъяснение :beer:

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

Добавлено: Пн янв 30, 2012 17:03:14
vanyap1
Собрал все таки передатчик rc-5 на тини 2313 (теперь он точно rc-5, и не надо подбирать пульты).
Код устроен так: при подаче питания команда и адрес равно - 0, и при каждой последующей передачи команда инкрементируется.

Но приемник все равно не работает как надо, иногда принимает каждую 10-ю команду. Ито после танцов с бубном, убрал задержку после опроса rc-5 и добавил условие - если команда и адрес не равно 255 то записать в другие переменные, которые потом выводятся на ЖКИ.


Грещу еще на кварц, но с внутренним генератором те же пироги.

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

Добавлено: Пн янв 30, 2012 17:08:55
edm2007
Я как-то спрашивал, а приемник какой? Точно 36 kHz?

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

Добавлено: Пн янв 30, 2012 18:48:55
vanyap1
и tsop4836 тоже. Черт его знает что там еще. Придется собрать тоже приемник еще один на тиньке2313.

Re: ЦМУ: фурье-шим

Добавлено: Вт янв 31, 2012 10:52:23
Magicanin
Здравия желаю всем Котам. :music:
Нужна помощь сведущих. Конструируируя собственную цму, встала проблема в анализе звукового потока, не могу добиться четкого разделения частотных каналов, в основном светодиоды мигают хаотически. Анализ взят из "Виктория" и добавлен шим на 4 канала от "Светодиодный диммер". При отсутствии звука светики не горят, как и должно быть, а при подаче звука хаос.
Пробовал даже варианты анализа отсюда http://bascomavr.3bb.ru/viewtopic.php?id=28&p=2
Стало хуже, мигает только второй канал, остальные в полную мощность.
Тактирование пробовал и внешнее на 16 и внутреннее.
Может несогласованность с шим, не знаю что думать? :o

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

$regfile = "m32def.dat"
$crystal = 8000000
                                     
Config Adc = Single , Prescaler = Auto , Reference = Internal  
Enable Adc                                              
Start Adc                                                  

Config Timer0 = Timer , Prescale = 1                  
Enable Timer0                                          
On Timer0 Pwms                                            
Start Timer0
                                           
Enable Interrupts

Config Portd = Output                                       

Dim Tik As Byte                                             
Dim Y(4) As Byte
Dim A1 As Word , A2 As Word , A3 As Word , A4 As Word , A5 As Word       
Dim X1 As Single , X2 As Single , X3 As Single , X4 As Single , X5 As Single      
Dim Ym1 As Byte , Ym2 As Byte , Ym3 As Byte , Ym4 As Byte   
Dim Temp5 As Single , Temp6 As Single , Temp7 As Single    
Dim Temp8 As Byte                                          

Do
Disable Timer0

A1 = Getadc(7)
'Waitus 25
A2 = Getadc(7)
'Waitus 25
A3 = Getadc(7)
'Waitus 25
A4 = Getadc(7)
'waitus 25
A5 = Getadc(7)

Enable Timer0

 X1 = A1 / 103
 X2 = A2 / 103
 X3 = A3 / 103
 X4 = A4 / 103
 X5 = A5 / 103

          Temp5 = X1 - X5
          Temp6 = X2 - X4
          Temp8 = Temp5 + Temp6
          Ym1 = Temp8 / 3
         'Ñ×1
          Temp5 = X1 + X5
          Temp6 = X3 * 2
          Temp8 = Temp5 - Temp6
          Ym2 = Temp8 / 4
         'Ñ×2
          Temp5 = X1 - X5
          Temp7 = X2 - X4
          Temp6 = Temp7 * 2
          Temp8 = Temp5 - Temp6
          Ym3 = Temp8 / 6
         'Â×
          Temp5 = X1 + X5
          Temp7 = X2 + X4
          Temp6 = Temp7 * 4
          Temp8 = Temp5 - Temp6
          Ym4 = Temp8 / 18


Y(1) = Ym1
Y(2) = Ym2
Y(3) = Ym3
Y(4) = Ym4

Loop
End


'*******************************************************************************

Pwms:
Incr Tik
 If Tik = 255 Then
  Tik = 0
  Portd = 0
 End If
   If Tik > Y(1) Then Portd.0 = 1
   If Tik > Y(2) Then Portd.1 = 1
   If Tik > Y(3) Then Portd.2 = 1
   If Tik > Y(4) Then Portd.3 = 1
Return

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

Добавлено: Вт янв 31, 2012 12:00:53
vanyap1
Как стабилизировать данные АЦП меги8?
АЦП отключен, включаю только при измерении и до начала вычисления отключаю, немного сузился диапазон прыжков. Прыгает как от внутреннего ИОН так и от питающего опорного.
Но ведь они не должны прыгать если опорное напряжение еще и питающее!
Вот кусок кода:

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

Do
Start Adc
Wadc = Getadc(0)
Stop Adc
U = Wadc / 204.6

Locate 1 , 1
Lcd "ADC= " ; Wadc ; "   "
Locate 2 , 1
Lcd "Voltage= " ; Fusing(u , "#.#") ; "  "
Waitms 100
Loop
Конденсаторы в схеме есть, установлены по схеме из даташита. Питается все это пока что от ЮСБ программатора.

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

Добавлено: Вт янв 31, 2012 12:53:33
Magicanin
http://www.lcdinfo.ru/html.cgi/txt/doc/ ... 3_58_8.htm
Прыгает не опорное, а входное напряжение.

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

Добавлено: Вт янв 31, 2012 13:21:41
vanyap1
Мне кажется что это не есть хорошо для блока питания, если надо измерять и контролировать напряжение одновременно.
ШИМ может дать большие помехи для АЦП.

Думал сгладить шим и дать опорное напряжение с него на ИБП. Может и RC цепочку на вход АЦП подключить...?

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

Добавлено: Вт янв 31, 2012 13:31:58
Magicanin
RC хорошо бы, можно еще входное сопротивление уменьшить подтяжкой на массу штоб не болтался на ветру.

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

Добавлено: Вт янв 31, 2012 14:24:29
vanyap1
Magicanin писал(а):Извращение это: программатор - AVR910 by Prottoss, прошивка - Doper, драйвер - Osamu Tamura, называется - STK500!

:))) Достаточно неплохо работает сие чудо техники...

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

Добавлено: Вт янв 31, 2012 14:56:25
Magicanin
vanyap1 писал(а):
Magicanin писал(а):Извращение это: программатор - AVR910 by Prottoss, прошивка - Doper, драйвер - Osamu Tamura, называется - STK500!

:))) Достаточно неплохо работает сие чудо техники...
Только этим чудом и пользуюсь, уже второй год.

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

Добавлено: Вт янв 31, 2012 15:24:17
vanyap1
Я тоже пользуюсь, но все время после прошивки ошибка вылетает, компенсирует скорость прошивки.
Еще иногда становится недоступным программатор, надо передернуть с ЮСБ.

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

Добавлено: Вт янв 31, 2012 15:37:41
Magicanin
Я пользуюсь им только в Bascom-AVR 1.11.9.8 По-моему самая удачная сборка из всех версий.

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

Добавлено: Вт янв 31, 2012 17:09:55
amv2000
Magicanin писал(а):Я пользуюсь им только в Bascom-AVR 1.11.9.8 По-моему самая удачная сборка из всех версий.
Согласен на все 100%, а касаемо программатора наверное дело привычки, как говорится, что русскому хорошо то немцу смерть.
Да простят мне флуд, не удержался.

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

Добавлено: Вт янв 31, 2012 17:20:56
vanyap1
Как оставить после комы только один знак, а все остальное убрать? Это надо сделать до вывода на экран.

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

Lcd "Voltage= " ; Fusing(u , "#.#") ; "  "  
Команду "Fusing" вроде понял, но никак она не хочет работать

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

U = Fusing(U , "#.#")
Или ввести еще одну переменную и сделать так -

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

U2 = Fusing(U , "#.#")
U = U2
?

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

Добавлено: Вт янв 31, 2012 17:33:58
Magicanin
Попробуй это из хелпа:

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

S = "12345"
S = Format(s , "000.0")
Print S
Но она раотает только со стрингами, иначе добавь Str(S)

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

Добавлено: Вт янв 31, 2012 17:43:08
amv2000
Пример тоже из хелпа
СпойлерDim S As Single , Z As String * 10



'присвоить значение переменной single

S = 123.45678

'используя str() преобразуем числовое значение в строковое

Z = Str(s)

Print Z 'выводим 123.456779477



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



'после форматирования используем 2 цифры после запятой с округлением

Print Fusing(s , "#.##") 'выводим 123.46



'после форматирования используем 2 цифры после запятой без округления

Print Fusing(s , "#.&&") 'выводим 123.45
Fusing Форматирует переменную типа Single согласно формату строки, при необходимости выполняет округление.