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

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

Добавлено: Пт фев 01, 2013 17:26:38
осторожно! леоныч!!!
Формат никогда не применял. Попробуем.

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

Добавлено: Пт фев 01, 2013 17:42:28
осторожно! леоныч!!!
Странно. Компилятор ругается.
ошибка.JPG

Исправил кое что. Все отлично! Это уже моя невнимательность! Грипп дает о себе знать.
Спасибо большое за советы! С вами интересно учиться! Вы настоящие спецы своего дела! :beer:
Ну а мне еще учиться и учиться :)))

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

Добавлено: Пт фев 01, 2013 19:28:40
Adagumer
А вот таким способом не пробовали.

I = Fusing(m , "####.#")

I у нас - Dim I As String * 8

М переменная которую нужно привести к должному виду.

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

Добавлено: Пт фев 01, 2013 19:31:05
осторожно! леоныч!!!
Хм... А это не одно и то же? Или я ошибаюсь?

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

Добавлено: Пт фев 01, 2013 20:44:40
Adagumer
осторожно! леоныч!!! писал(а):Хм... А это не одно и то же?
Возможно так и есть, но с Фузингом почему-то легче получается.

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

Добавлено: Пт фев 01, 2013 21:55:24
константин_KoSS_89
Подскажите, может кто знает как написать программу пид регулятора? Может кто знает где пример программы есть?

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

Добавлено: Пт фев 01, 2013 22:50:57
_Vasilij_
А в сэмплах самого баскома смотрел ? там есть какой-то пример SinglePID , глянь мож оно.

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

Добавлено: Сб фев 02, 2013 04:43:19
осторожно! леоныч!!!
Тут был код ПИД регулятора. Почитайте внимательно http://m.radiokot.ru/forum/viewtopic.ph ... start=3600

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

Добавлено: Сб фев 02, 2013 13:28:20
осторожно! леоныч!!!
Друзья! Кто подскажет по какой формуле получить из нескольких разных чисел одно? Причем порядок чисел важен!

Например есть

Dim Dig1 As byte
Dim Dig2 As Byte
Dim Dig3 As Byte
Dim Dig4 As Byte
Dim Dig5 As Byte
Dim Dig6 As Byte

В них цифры, например так

Dig1 в нем 1
Dig2 в нем 4
Dig3 в нем 5
Dig4 в нем 5
Dig5 в нем 0
Dig6 в нем 0

Надо получить к примеру число dim digsumm as Long
в виде digsumm = 145500

Вроде бы должно быть не сложно но я как новичек застрял на этом...

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

Добавлено: Сб фев 02, 2013 13:53:48
_Vasilij_
вчера ж только в обратную сторону раскладывали, тут еще проще
digsumm = dig1*100000+dig2*10000+dig3*1000+dig4*100+dig5*10+dig6

но это в общем представлении, а в код все построчно придется вставлять и с использованием промежуточной переменной, потому как компилятор не проглотит даже 2 арифметических действия, т.е a=a+b еще можно писать, а вот a=a+b+с уже нет, так как уже две операции сложения

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

Добавлено: Сб фев 02, 2013 14:15:54
осторожно! леоныч!!!
Во как... Блин я забыл совсем про вчерашние разборки с цифрами. Думаю попробовать в подпрограмме все это безобразие воплотить. Эх переменных куча будет :) Надо подумать как это все разложить чтоб нормальный результат получался.

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

Добавлено: Сб фев 02, 2013 14:31:59
_Vasilij_
осторожно! леоныч!!! писал(а):Эх переменных куча будет :)
промежуточную переменную можно вообще одну на всю программу использовать, где то уже вроде там была temp as long, вот ею же можно и пользоваться каждый раз, когда нужно воспользоваться промежуточной переменной.

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

temp = dig1*100000
digsumm = temp

temp=dig2*10000
digsumm = digsumm+temp

temp=dig3*1000
digsumm = digsumm+temp

ит.д.

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

Добавлено: Сб фев 02, 2013 14:36:42
Moto_v3x
или так
digsumm = digsumm+dig1
digsumm = digsumm*10
digsumm = digsumm+dig2
digsumm = digsumm*10
digsumm = digsumm+dig3
digsumm = digsumm*10
digsumm = digsumm+dig4
digsumm = digsumm*10
digsumm = digsumm+dig5
digsumm = digsumm*10
digsumm = digsumm+dig6

переменные dig расположить в соответствующем порядке

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

Добавлено: Сб фев 02, 2013 14:45:04
осторожно! леоныч!!!
Спасибо ребят. А то я вот так попробовал

Dig1 = Dig1 * 100000
Dig2 = Dig2 * 10000
Dig3 = Dig3 * 1000
Dig4 = Dig4 * 100
Dig5 = Dig5 * 10
Dig6 = Dig6

Digsumm = Dig1 + Dig2
Digsumm = Digsumm + Dig3
Digsumm = Digsumm + Dig4
Digsumm = Digsumm + Dig5
Digsumm = Digsumm + Dig6

И получил ерунду полную.

Спасибо! По вашим советам все получилось!!! :))

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

Добавлено: Сб фев 02, 2013 18:41:00
осторожно! леоныч!!!
Вот снова вопрос возник из за которого проблемы.
Как сделать правильно?
Есть строка

If "переменная" <> 20 Then Incr "переменная"

Как впилить паузу сюда чтоб была задержка?
То есть если переменная изменилась,нужно сделать паузу чтоб она перестала изменяться и только потом Записать её значение в другую переменную и выполнить incr для переменной в этой строке. Что то не соображу ни как...

И вопрос на засыпку. Сколько раз можно стереть\прошить атмэловский контроллер серии ATMEGA?

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

Добавлено: Сб фев 02, 2013 19:30:55
константин_KoSS_89
Примерно так, если я всё правильно понял

If X <> 20 Then
Do
Incr X
Wait 1 'ждать секунду
A = X
Loop Until X = 20
End If

По второму вопросу - много...

И по пид регулятору вопрос в силе, может кто знает как реализовать программно, есть уставка и переменная с ацп, может есть у кого пример простой желалтельно с каментами, как поддержывать заданную температуру...Буквально в пару строк, только расчёт.

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

Добавлено: Вс фев 03, 2013 06:53:06
dimon-790
константин_KoSS_89 вот здесьhttp://www.mcselec.com/index.php?option ... &Itemid=57 глянь , правда под 8051 но под авр-ы переделать ноль проблем .
Сам чуть позже тоже хочу попробовать , диммерное или пид регулирование.

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

Добавлено: Вс фев 03, 2013 06:55:34
dimon-790

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

Добавлено: Вс фев 03, 2013 09:29:33
осторожно! леоныч!!!
Задам вопрос так.

Есть строка

If Temp = 7 Then
Incr Temp3
A = Temp
Call Podprogramma
End If

Переменная Temp может иметь значение в диапазоне от - 0 до 20.
В моей строчке программа будет реагировать на число 7!
Но мне надо обрабатывать несколько чисел сразу, больше половины числа 20!
Как написать эту строку чтоб реакция происходила только на определенные числа?
То есть ряд чисел.

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

Добавлено: Вс фев 03, 2013 10:47:51
max50
осторожно! леоныч!!! писал(а):Как написать эту строку чтоб реакция происходила только на определенные числа?
То есть ряд чисел.
Если правильно понял, то:

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

Select Case Temp

  Case 1 : Print "1"

  Case 3 To 5 : Print "3-5"

  Case 7 : Incr Temp3
  A = Temp : Call Podprogramma

End Select