BASCOM AVR в вопросах и ответах
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Формат никогда не применял. Попробуем.
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Странно. Компилятор ругается.
Исправил кое что. Все отлично! Это уже моя невнимательность! Грипп дает о себе знать.
Спасибо большое за советы! С вами интересно учиться! Вы настоящие спецы своего дела!
Ну а мне еще учиться и учиться
Исправил кое что. Все отлично! Это уже моя невнимательность! Грипп дает о себе знать.
Спасибо большое за советы! С вами интересно учиться! Вы настоящие спецы своего дела!
Ну а мне еще учиться и учиться
- Adagumer
- Поставщик валерьянки для Кота
- Сообщения: 2283
- Зарегистрирован: Чт ноя 15, 2012 20:47:59
- Откуда: Крымск
Re: BASCOM AVR в вопросах и ответах
А вот таким способом не пробовали.
I = Fusing(m , "####.#")
I у нас - Dim I As String * 8
М переменная которую нужно привести к должному виду.
I = Fusing(m , "####.#")
I у нас - Dim I As String * 8
М переменная которую нужно привести к должному виду.
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Хм... А это не одно и то же? Или я ошибаюсь?
- Adagumer
- Поставщик валерьянки для Кота
- Сообщения: 2283
- Зарегистрирован: Чт ноя 15, 2012 20:47:59
- Откуда: Крымск
Re: BASCOM AVR в вопросах и ответах
осторожно! леоныч!!! писал(а):Хм... А это не одно и то же?
Возможно так и есть, но с Фузингом почему-то легче получается.
- константин_KoSS_89
- Вымогатель припоя
- Сообщения: 602
- Зарегистрирован: Пн дек 29, 2008 01:40:28
- Откуда: (Украина, г. Стаханов, Луганская обл.) теперь Кемерово :)
Re: BASCOM AVR в вопросах и ответах
Подскажите, может кто знает как написать программу пид регулятора? Может кто знает где пример программы есть?
Re: BASCOM AVR в вопросах и ответах
А в сэмплах самого баскома смотрел ? там есть какой-то пример SinglePID , глянь мож оно.
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Тут был код ПИД регулятора. Почитайте внимательно http://m.radiokot.ru/forum/viewtopic.ph ... start=3600
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Друзья! Кто подскажет по какой формуле получить из нескольких разных чисел одно? Причем порядок чисел важен!
Например есть
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
Вроде бы должно быть не сложно но я как новичек застрял на этом...
Например есть
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 в вопросах и ответах
вчера ж только в обратную сторону раскладывали, тут еще проще
digsumm = dig1*100000+dig2*10000+dig3*1000+dig4*100+dig5*10+dig6
но это в общем представлении, а в код все построчно придется вставлять и с использованием промежуточной переменной, потому как компилятор не проглотит даже 2 арифметических действия, т.е a=a+b еще можно писать, а вот a=a+b+с уже нет, так как уже две операции сложения
digsumm = dig1*100000+dig2*10000+dig3*1000+dig4*100+dig5*10+dig6
но это в общем представлении, а в код все построчно придется вставлять и с использованием промежуточной переменной, потому как компилятор не проглотит даже 2 арифметических действия, т.е a=a+b еще можно писать, а вот a=a+b+с уже нет, так как уже две операции сложения
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Во как... Блин я забыл совсем про вчерашние разборки с цифрами. Думаю попробовать в подпрограмме все это безобразие воплотить. Эх переменных куча будет
Надо подумать как это все разложить чтоб нормальный результат получался.
Re: BASCOM AVR в вопросах и ответах
промежуточную переменную можно вообще одну на всю программу использовать, где то уже вроде там была temp as long, вот ею же можно и пользоваться каждый раз, когда нужно воспользоваться промежуточной переменной.осторожно! леоныч!!! писал(а):Эх переменных куча будет![]()
Код: Выделить всё
temp = dig1*100000
digsumm = temp
temp=dig2*10000
digsumm = digsumm+temp
temp=dig3*1000
digsumm = digsumm+temp
ит.д.- Moto_v3x
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Ср мар 31, 2010 11:45:58
- Откуда: Славянск
Re: BASCOM AVR в вопросах и ответах
или так
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 расположить в соответствующем порядке
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 расположить в соответствующем порядке
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Спасибо ребят. А то я вот так попробовал
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
И получил ерунду полную.
Спасибо! По вашим советам все получилось!!!
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
И получил ерунду полную.
Спасибо! По вашим советам все получилось!!!
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Вот снова вопрос возник из за которого проблемы.
Как сделать правильно?
Есть строка
If "переменная" <> 20 Then Incr "переменная"
Как впилить паузу сюда чтоб была задержка?
То есть если переменная изменилась,нужно сделать паузу чтоб она перестала изменяться и только потом Записать её значение в другую переменную и выполнить incr для переменной в этой строке. Что то не соображу ни как...
И вопрос на засыпку. Сколько раз можно стереть\прошить атмэловский контроллер серии ATMEGA?
Как сделать правильно?
Есть строка
If "переменная" <> 20 Then Incr "переменная"
Как впилить паузу сюда чтоб была задержка?
То есть если переменная изменилась,нужно сделать паузу чтоб она перестала изменяться и только потом Записать её значение в другую переменную и выполнить incr для переменной в этой строке. Что то не соображу ни как...
И вопрос на засыпку. Сколько раз можно стереть\прошить атмэловский контроллер серии ATMEGA?
- константин_KoSS_89
- Вымогатель припоя
- Сообщения: 602
- Зарегистрирован: Пн дек 29, 2008 01:40:28
- Откуда: (Украина, г. Стаханов, Луганская обл.) теперь Кемерово :)
Re: BASCOM AVR в вопросах и ответах
Примерно так, если я всё правильно понял
If X <> 20 Then
Do
Incr X
Wait 1 'ждать секунду
A = X
Loop Until X = 20
End If
По второму вопросу - много...
И по пид регулятору вопрос в силе, может кто знает как реализовать программно, есть уставка и переменная с ацп, может есть у кого пример простой желалтельно с каментами, как поддержывать заданную температуру...Буквально в пару строк, только расчёт.
If X <> 20 Then
Do
Incr X
Wait 1 'ждать секунду
A = X
Loop Until X = 20
End If
По второму вопросу - много...
И по пид регулятору вопрос в силе, может кто знает как реализовать программно, есть уставка и переменная с ацп, может есть у кого пример простой желалтельно с каментами, как поддержывать заданную температуру...Буквально в пару строк, только расчёт.
- dimon-790
- Мучитель микросхем
- Сообщения: 442
- Зарегистрирован: Пт авг 29, 2008 09:22:37
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
константин_KoSS_89 вот здесьhttp://www.mcselec.com/index.php?option=com_content&task=view&id=73&Itemid=57 глянь , правда под 8051 но под авр-ы переделать ноль проблем .
Сам чуть позже тоже хочу попробовать , диммерное или пид регулирование.
Сам чуть позже тоже хочу попробовать , диммерное или пид регулирование.
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
- dimon-790
- Мучитель микросхем
- Сообщения: 442
- Зарегистрирован: Пт авг 29, 2008 09:22:37
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Задам вопрос так.
Есть строка
If Temp = 7 Then
Incr Temp3
A = Temp
Call Podprogramma
End If
Переменная Temp может иметь значение в диапазоне от - 0 до 20.
В моей строчке программа будет реагировать на число 7!
Но мне надо обрабатывать несколько чисел сразу, больше половины числа 20!
Как написать эту строку чтоб реакция происходила только на определенные числа?
То есть ряд чисел.
Есть строка
If Temp = 7 Then
Incr Temp3
A = Temp
Call Podprogramma
End If
Переменная Temp может иметь значение в диапазоне от - 0 до 20.
В моей строчке программа будет реагировать на число 7!
Но мне надо обрабатывать несколько чисел сразу, больше половины числа 20!
Как написать эту строку чтоб реакция происходила только на определенные числа?
То есть ряд чисел.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: BASCOM AVR в вопросах и ответах
осторожно! леоныч!!! писал(а):Как написать эту строку чтоб реакция происходила только на определенные числа?
То есть ряд чисел.
Если правильно понял, то:
Код: Выделить всё
Select Case Temp
Case 1 : Print "1"
Case 3 To 5 : Print "3-5"
Case 7 : Incr Temp3
A = Temp : Call Podprogramma
End SelectТого, кто не задумывается о далеких трудностях, ожидают близкие неприятности.