Страница 164 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт фев 01, 2013 17:26:38
осторожно! леоныч!!!
Формат никогда не применял. Попробуем.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт фев 01, 2013 17:42:28
осторожно! леоныч!!!
Странно. Компилятор ругается.
ошибка.JPG
Исправил кое что. Все отлично! Это уже моя невнимательность! Грипп дает о себе знать.
Спасибо большое за советы! С вами интересно учиться! Вы настоящие спецы своего дела!
Ну а мне еще учиться и учиться

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
осторожно! леоныч!!!
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