Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Bascom

Сообщений 1 страница 22 из 22

1

А можно ли прикрепить к проекту файл с расширением *.bas?
Допустим есть уже готовая подпрограмма для девайса. Чтобы не загромождать исходник КАК можно прикрепить исходник *.bas к проекту???

0

2

F1

$INCLUDE
Includes an ASCII file in the program at the current position.

0

3

-NMi- написал(а):

А можно ли прикрепить к проекту файл с расширением *.bas?Допустим есть уже готовая подпрограмма для девайса. Чтобы не загромождать исходник КАК можно прикрепить исходник *.bas к проекту???


только не забудьте перепрыгивание реализовать. иначе не работает делается это так

Код:
$nocompile   
Goto Jumpover    


' здесь подрограммы , функции, декларации и тд и тп  из стороннего файла *.bas


Jumpover:   ' это в самом конце вставки

забирать в основном листинге через в начале

Код:
$include "ext_eeprom.bas"  ' ваш файл вставки. вставится с места где пропишите

декларацию, функцию только теперь звать нужно не через Call , а просто как  ИМЯФУНКЦИИ ПЕРЕМЕННАЯ , вообщем просто без call

да и еще если в процессе будете вносить изменения в файле с функциями, не забывайте его подсохранять тк $nocompile он не компилется по отдельности только в куче с основным листингом.

Отредактировано RN6LHC (2015-10-31 12:43:00)

0

4

Спасибо!

А можно ли запараллелить RX и TX чтобы несколько контроллеров в группу соединить???

0

5

-NMi- написал(а):

А можно ли запараллелить RX и TX чтобы несколько контроллеров в группу соединить???


А чем I2C не нравится?

0

6

А каким образом контроллеру будет присвоен адрес в шине?

0

7

Ручками.)

0

8

А по подробнее можно?

0

9

Ещё вопрос: допустим нужно хранить в EEPROMе контроллера 4 10-ти байтных константы. При запуске контроллера он должен прочитать из EEPROMа эти четыре константы и хранить их уже в виде массива в ОЗУ. И ещё нужна процедура замены любой из этих констант на другую в режиме "конфигуратора". Как это можно осуществить на баскоме?

0

10

Так, с ЕЕпромом разобрался. Тепереча: а как к этим 4-м массивам индекс прикрепить, например от одного до четырёх.  ???

0

11

Ещё: по какой формуле пересчитывать температуру кристалла At328p, где брать коэффициенты пересчёта?

0

12

1 - Как написать простейший ПИД? Никто не заморачивался? Мне бы пример расчёта, можно просто формулами, но без интеграла и дифференциала (простой математикой).
2 - На 328p как я понял работать одновременно могут только 2 ШИМ канала (Timer 1, 2) верно? Timer0 остаётся свободным и только к нему можно привязать "некие" события по времени или есть другие варианты?

0

13

-NMi- написал(а):

1 - Как написать простейший ПИД? Никто не заморачивался? Мне бы пример расчёта, можно просто формулами, но без интеграла и дифференциала (простой математикой).

http://we.easyelectronics.ru/Theory/pid … tikov.html
http://meandr.org/archives/1737
http://yysup.narod.ru/schem/Pid_ind.html

Отредактировано Tankor (2016-01-26 10:58:51)

0

14

-NMi- написал(а):

1 - Как написать простейший ПИД? Никто не заморачивался? Мне бы пример расчёта, можно просто формулами, но без интеграла и дифференциала (простой математикой).

В datasheet сказано, что у mega328 6 каналов pwm.
Одновременно работать могут. Вот

Отредактировано Tankor (2016-01-26 11:17:46)

0

15

-NMi- написал(а):

А по подробнее можно?

Посмотрите примеры в Баскоме (I2C Slave), любое устройство имеет свой внутренний адрес, который вы сами назначаете ему при его создании/программировании.
Вообще алгоритм/система раздачи автоматического адреса/имени устройству - задача весьма нетривиальная, т.к. придется разбираться/мучится с арбитражными сигналами (приоритетов), некое подобная технология есть в CAN, правда и там устройства имеют адреса, а система эта используется для сбора данных со всех устройств (чтобы все разом в линию не кидали данные, а понимали, кто первый из них успел или нет). Это как мы понимаем, ещё надо время на анализ и доп.нагрузка на протокол обмена. Вам то наверное нужно данные как можно больше и быстрее передать, а не мучится с поддержкой авто-адреса устройства...

0

16

-NMi- написал(а):

Как написать простейший ПИД?

http://roboforum.ru/wiki/Перевод_статьи … оритмах%22
Там есть код. Я перевел его на баском с использованием целочисленных переменных и даже как-то работает. Но если нужна нормальная точность, то следует использовать переменные типа Single или Double.

Код:
$nocompile

Const Pid_igain = 2
Const Pid_pgain = 2
Const Pid_dgain = 2
Const Pid_imax = 100
Const Pid_imin = -100

Dim Pid_dstate As Integer
Dim Pid_istate As Integer

Dim Pid_pterm As Integer
Dim Pid_dterm As Integer
Dim Pid_iterm As Integer
Dim Pid_error As Integer

' Setpoint - Значение которое нужно поддерживать.
' Position - Текущее значение.
Declare Function Pid_update(byval Setpoint As Integer , Byval Position As Integer) As Integer

Goto Pid_m1

Function Pid_update(byval Setpoint As Integer , Byval Position As Integer) As Integer

  Pid_error = Setpoint - Position

  Pid_pterm = Pid_pgain * Pid_error
  Pid_istate = Pid_istate + Pid_error

  If Pid_istate > Pid_imax Then
    Pid_istate = Pid_imax
  Elseif Pid_istate < Pid_imin Then
    Pid_istate = Pid_imin
  End If

  Pid_iterm = Pid_igain * Pid_istate
  Pid_dterm = Position - Pid_dstate
  Pid_dterm = Pid_dterm * Pid_dgain
  Pid_dstate = Position

  Pid_pterm = Pid_pterm + Pid_iterm
  Pid_pterm = Pid_pterm - Pid_dterm

  Pid_update = Pid_pterm
End Function

Pid_m1:
-NMi- написал(а):

но без интеграла и дифференциала

Это будет не ПИД, а пропорциональный регулятор.

0

17

-NMi- написал(а):

Как написать простейший ПИД? Никто не заморачивался?

Симисторный ПИД регулятор

0

18

Всем СПАСИБО! Пишу потихоньку. Точность нужна от 0,1 а лучше 0,05.
Ещё вопросик. Баском версии 2071 и 2078 почемуто компилируют по разному. Иногда условия не выполняются или что-то меняется-запутывается (в. 2078) . Собственно на какой версии остановиться? Естественно версии не офф. а демо.

0

19

-NMi-, покажи примеры, где и что не работает в зависимости от версии?

0

20

В скайпе давай найдёмся, я всё покажу на видео. Скайп NeonMm

0

21

не, по скайпу мне лень, да и остальным видно не будет, на то форум и придуман...

0

22

ну тахда я не....

0