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

Обсуждаем контроллеры компании Atmel.
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 1156
Зарегистрирован: Вт дек 09, 2008 20:31:56

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

Сообщение осторожно! леоныч!!! »

Формат никогда не применял. Попробуем.
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 1156
Зарегистрирован: Вт дек 09, 2008 20:31:56

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

Сообщение осторожно! леоныч!!! »

Странно. Компилятор ругается.
ошибка.JPG



Исправил кое что. Все отлично! Это уже моя невнимательность! Грипп дает о себе знать.
Спасибо большое за советы! С вами интересно учиться! Вы настоящие спецы своего дела! :beer:
Ну а мне еще учиться и учиться :)))
Аватара пользователя
Adagumer
Поставщик валерьянки для Кота
Сообщения: 2283
Зарегистрирован: Чт ноя 15, 2012 20:47:59
Откуда: Крымск

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

Сообщение Adagumer »

А вот таким способом не пробовали.

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 в вопросах и ответах

Сообщение Adagumer »

осторожно! леоныч!!! писал(а):Хм... А это не одно и то же?

Возможно так и есть, но с Фузингом почему-то легче получается.
Аватара пользователя
константин_KoSS_89
Вымогатель припоя
Сообщения: 602
Зарегистрирован: Пн дек 29, 2008 01:40:28
Откуда: (Украина, г. Стаханов, Луганская обл.) теперь Кемерово :)

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

Сообщение константин_KoSS_89 »

Подскажите, может кто знает как написать программу пид регулятора? Может кто знает где пример программы есть?
_Vasilij_
Встал на лапы
Сообщения: 124
Зарегистрирован: Пт янв 25, 2013 02:48:32

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

Сообщение _Vasilij_ »

А в сэмплах самого баскома смотрел ? там есть какой-то пример 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

Вроде бы должно быть не сложно но я как новичек застрял на этом...
_Vasilij_
Встал на лапы
Сообщения: 124
Зарегистрирован: Пт янв 25, 2013 02:48:32

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

Сообщение _Vasilij_ »

вчера ж только в обратную сторону раскладывали, тут еще проще
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 в вопросах и ответах

Сообщение осторожно! леоныч!!! »

Во как... Блин я забыл совсем про вчерашние разборки с цифрами. Думаю попробовать в подпрограмме все это безобразие воплотить. Эх переменных куча будет :) Надо подумать как это все разложить чтоб нормальный результат получался.
_Vasilij_
Встал на лапы
Сообщения: 124
Зарегистрирован: Пт янв 25, 2013 02:48:32

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

Сообщение _Vasilij_ »

осторожно! леоныч!!! писал(а):Эх переменных куча будет :)
промежуточную переменную можно вообще одну на всю программу использовать, где то уже вроде там была 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 в вопросах и ответах

Сообщение 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 расположить в соответствующем порядке
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 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

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

Спасибо! По вашим советам все получилось!!! :))
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 1156
Зарегистрирован: Вт дек 09, 2008 20:31:56

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

Сообщение осторожно! леоныч!!! »

Вот снова вопрос возник из за которого проблемы.
Как сделать правильно?
Есть строка

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

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

И вопрос на засыпку. Сколько раз можно стереть\прошить атмэловский контроллер серии ATMEGA?
Аватара пользователя
константин_KoSS_89
Вымогатель припоя
Сообщения: 602
Зарегистрирован: Пн дек 29, 2008 01:40:28
Откуда: (Украина, г. Стаханов, Луганская обл.) теперь Кемерово :)

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

Сообщение константин_KoSS_89 »

Примерно так, если я всё правильно понял

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 в вопросах и ответах

Сообщение dimon-790 »

константин_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 в вопросах и ответах

Сообщение dimon-790 »

Все мы работаем по методу Робинзона Крузо – ждем пятницу.
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 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!
Как написать эту строку чтоб реакция происходила только на определенные числа?
То есть ряд чисел.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

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

Вернуться в «AVR»