Важная информация

User Tag List

Страница 1 из 7 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 61

Тема: Программирование в Bascom для Arduino( сишники идут полем)

  1. #1
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    858
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    101
    Поблагодарили
    68 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Программирование в Bascom для Arduino( сишники идут полем)

    Скачал модный Bascom.
    Большой плюс "Баскова" - поддержка загрузчика ардуино через usb.
    Набросал програмку для меги128:

    Rem Programm barsik
    Stop Watchdog
    Rem отключил сторожевой таймер
    Ddrb = &B11111111
    Ddra = &B11111111
    Portb = 0
    Porta = 0
    On Timer0 Timercount
    Dim A(10) As Integer
    Dim I As Byte
    Tcnt0 = 0
    Timsk = 1
    Tccr0 = 1
    Enable Interrupts
    Do
    For I = 0 To 10
    A(i) = A(i) + I
    Portb = Low(a(i))
    Next I
    Loop
    Timercount:
    Porta = I
    Return
    End

    Тестировал в отладчике. Работает. Собственно вопрос - такой стиль обращения к внутренним портам непосредственно приемлем? Мне просто так удобней чем при использовании конфигов бейсика.
    Может кто поделится какими ссылками на интересные проекты с использованием баскома для авра. Желательно начального уровня, так как ардуино я купил сравнительно недавно( осенью).

    - - - Добавлено - - -

    Нашёл ошибку в индексе и исправил. В баскоме индексы массивов начинаются с 1. Так что в цикле начальное значение 1.
    Такая ошибка от вредного влияния си...)) Что интересно - компилятор пропустил и программа не рухнула.
    ¡Un momento, señor fiscal!


  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Вот проектик я делал решив как то пописать на Bascom - Поворотная антенна с метеостанцией

    - - - Добавлено - - -

    На счет СИ шников полем, в Bascom можно вполне удачно пользоваться приемами СИ.
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

  4. #3
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    858
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    101
    Поблагодарили
    68 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хочу изучить управление bldc-мотором( не путать с pmsm - разные формы напряжений на фазах).
    Простые проекты найденные в сети имеют недостатки. Например, скорость вращения ротора никак не регулируется в заданном диапазоне - двигатель просто разгоняется до максимума(http://radiokot.ru/forum/viewtopic.php?p=1670220), или используются специфические библиотеки.
    Есть ли простой проект с регулировкой скорости по заданному значению?
    Ссылки по теме:
    http://www.gaw.ru/html.cgi/txt/app/m...avr/AVR492.htm
    http://radioparty.ru/prog-avr/progra...ldc-sensorless
    http://www.avislab.com/blog/brushless04/

    - - - Добавлено - - -

    Скрытый текст


    А не сишник ли ты часом?..

    [свернуть]
    ¡Un momento, señor fiscal!


  5. #4
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    858
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    101
    Поблагодарили
    68 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почему я решил выбрать бейсик?
    Ну во первых, сам компилятор занимает около 25 мб. Во вторых, есть система справок + русскоязычное сообщество.
    Ну и я случайно нашёл кое какую инфу о языках программирования. Как бы небольшое расследование о языках программирования и ЭВМ.
    В истории ЭВМ и языков программирования есть много странного... Например, Тьюринг, один из основоположников ЭВМ, пишут историки, был гомиком и ,вероятно, самоубийцей. Неприятное начало для истории ЭВМ.
    Но вот, что меня смутило. Известно, что языком программирования от которого берут начало современные языки программирования называется алгол( сокращение от алгоритмик лэнгвидж). Ну вроде, и название алгола вроде бы логично - сокращение от алгоритмический язык. Но есть одно но. Значительное но...
    сишники доиграются
    Вообще, эту звезду связывают с потерей головы(поисковики в помощь. я пас.). Запомним этот факт.
    Хотя, может, это только совпадение? Но мне это всё неприятно.
    Зачем я подписал ссылку "сишники доиграются"? А дело в том, что язык си является потомком алгола! Вот некоторый факт -
    "Язык Си восходит корнями к языку ALGOL (расшифровывается как ALGorithmic Language), который был создан в 1958 году совместно с комитетом Европейских и Американских учёных в сфере компьютерных наук на встрече в Швейцарской высшей технической школе Цюриха. Язык был ответом на некоторые недостатки языка FORTRAN и попыткой их исправить. Кроме того, разработка Си тесно связана с созданием операционной системы UNIX, над которой также работали Кен Томпсон и Деннис Ритчи."
    Короч, алгол -> cpl -> bcpl -> b -> c. Такая история языка си.
    Теперь поговорим об униксе. Итак, для упрощения разработки уникса был придуман и использован язык си. Однако и тут есть странности. Так в униксе есть такие понятия и единицы как демоны. Что-то совсем странное с этими ЭВМ! В ЭВМ очень много совпадений с областью оккультного или много заимствований из этой области!
    Я просил запомнить вас тот факт, что мрачная звезда связана с потерей головы. Не буду ничего объяснять. Только откройте ссылку и почитайте:
    взгляд инсайдера
    Ну, и где-то я читал, что у программистов си намного больше психических расстройств чем у других программистов.
    Вы можете не соглашаться. Можете считать это всё совпадениями.

    Итак, почему же бейсик? Бейсик придуман в 1964 году, то есть за четыре года до появления алгола. Так как бейсик не ведёт от начала от алгола, то по этой причине я и выбрал этот язык для программирования контроллеров. Да и звучит как Бей-си-к(бей си, для тех кто не понял).
    Последний раз редактировалось Smalovsky; 13.01.2017 в 22:52.
    ¡Un momento, señor fiscal!


  6. #5
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Smalovsky, Извини, я не сдержался

    Сегодня же пятница 13 )))

    [свернуть]
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

  7. #6
    Guru Аватар для creator
    Регистрация
    02.07.2006
    Адрес
    Новосибирск
    Сообщений
    2,217
    Спасибо Благодарностей отдано 
    470
    Спасибо Благодарностей получено 
    239
    Поблагодарили
    142 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Да и звучит как Бей-си-к(бей си, для тех кто не понял).
    Короче тоже бес.
    В правильно заданном вопросе содержится половина ответа

  8. #7
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,977
    Спасибо Благодарностей отдано 
    174
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    90 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я в 2011-ом году вот этот проект повторил с небольшой доработкой. До сих пор в машине работает. Даже исходник как-то сам правил, но сейчас всё подзабыл.
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  9. #8
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Опуская лирику могу сказать чем конкретно мне не понравился Bascom -
    На нем хорошо писать простые и быстрые проекты, сигнализацию какую нибудь, управление чем то по каким то условиям, ВКЛ/ВЫКЛ
    И я затеял проект с поворотной антенной подумав, что в общем покрутить шаговик на нем самое оно, но уже потратив кучу времени на реализацию основного алгоритма пожалел, что не начал проект на СЯ-х,
    объясню, в начале простой цикл, несколько кнопок, процедура управления двигателем, подсчеты шагов, деление умножение, в общем басик более менее годится, но когда пошел обвес, часы, КСВ метр, калибровки, датчики с разными шинами, радио, работа с памятью, прерывания, то тут уже если ко всему этому применить библиотеки баскома проект не влезет ни в одну Мегу, о скорости молчу, на простых проектах да Бас=СИ, но на тяжеловесных начинаешь в баскоме СИ-шить и ASM-мить, ибо опускаясь на уровень прерываний и шин, хрен, что на нем красиво (размер памяти и скорость) напишешь, так, что возражения и камни конечно принимаются, но после того как напишите проект с SPI, 1 wire, I2C, памятью, прерываниями с парой тройкой обработчиков, клавой в одном проекте.

    И тогда можно предметно поговорить, сравнив объем кода и скорость чистого Баса для AVR против СИ-лесом

    - - - Добавлено - - -

    Вто например как на баском выгладит один только список переменных для датчика давления, температуры и высоты BOSH bmp180

    Переменные

    '***** переменные и константы датчика давления и температуры BMP180 *******************************************

    Const Oversampling_setting = 1
    Const Software_oversampling_setting = 1
    Const R_ac1 = &HAA
    Const R_ac2 = &HAC
    Const R_ac3 = &HAE
    Const R_ac4 = &HB0
    Const R_ac5 = &HB2
    Const R_ac6 = &HB4
    Const R_b1 = &HB6
    Const R_b2 = &HB8
    Const R_mb = &HBA
    Const R_mc = &HBC
    Const R_md = &HBE
    'Const Oss = &H74 '1-стандарт
    Const Oss = &H34 ' 0-низкое потребление
    'Const Oss = &Hb4 ' 2-точное измерение
    'Const Oss = &Hf4 ' 3-супер точное
    Const Term_180 = &H2E

    Dim Ac1 As Integer , Mac1 As Byte At Ac1 + 0 Overlay , Lac1 As Byte At Ac1 + 1 Overlay
    Dim Ac1a As Long
    Dim Ac2 As Integer , Mac2 As Byte At Ac2 + 0 Overlay , Lac2 As Byte At Ac2 + 1 Overlay
    Dim Ac3 As Integer , Mac3 As Byte At Ac3 + 0 Overlay , Lac3 As Byte At Ac3 + 1 Overlay
    Dim Ac4 As Word , Mac4 As Byte At Ac4 + 0 Overlay , Lac4 As Byte At Ac4 + 1 Overlay
    Dim Ac5 As Word , Mac5 As Byte At Ac5 + 0 Overlay , Lac5 As Byte At Ac5 + 1 Overlay
    Dim Ac5a As Single
    Dim Ac6 As Word , Mac6 As Byte At Ac6 + 0 Overlay , Lac6 As Byte At Ac6 + 1 Overlay
    Dim Bb1 As Integer , Mb1 As Byte At Bb1 + 0 Overlay , Lb1 As Byte At Bb1 + 1 Overlay
    Dim B2 As Integer , Mb2 As Byte At B2 + 0 Overlay , Lb2 As Byte At B2 + 1 Overlay
    Dim B3 As Long
    Dim B3a As Long
    Dim B4 As Long
    Dim B5 As Long
    Dim B6 As Integer
    Dim B6a As Long
    Dim B7 As Long

    Dim Mb As Integer , Mmb As Byte At Mb + 0 Overlay , Lmb As Byte At Mb + 1 Overlay
    Dim Mc As Integer , Mmc As Byte At Mc + 0 Overlay , Lmc As Byte At Mc + 1 Overlay
    Dim Mc2 As Long
    Dim Md As Integer , Mmd As Byte At Md + 0 Overlay , Lmd As Byte At Md + 1 Overlay
    Dim Adres As Byte
    Dim Wert As Byte
    Dim Ut As Long , Mut As Byte At Ut + 0 Overlay , Lut As Byte At Ut + 1 Overlay

    Dim Xx1 As Long
    Dim X1t As Single
    Dim X2 As Long
    Dim X3 As Long
    Dim Tt As Single
    Dim T2 As Long
    Dim Temperatur As String * 6
    Dim Luftdruck As String * 8
    Dim Druck As Single

    Dim Pp As Long
    Dim P2 As Long
    Dim 2potenz15 As Long
    Dim 2potenz11 As Integer
    Dim 2potenz13 As Integer
    Dim 2potenz8 As Integer
    Dim 2potenz4 As Integer
    Dim 2potenz2 As Integer
    Dim 2potenz16 As Long
    Dim 2potenz12 As Integer
    Dim Potenz5255 As Single
    Dim Altitude As Single
    Dim Altitudes As String * 8
    Dim Msb As Long
    Dim Lsb As Long
    Dim Up As Long , Mup As Byte At Up + 2 Overlay , Lup As Byte At Up + 1 Overlay , Xlup As Byte At Up + 0 Overlay
    Dim Druckvar As Byte

    Declare Sub Berechne_temp
    Declare Sub Berechne_druck
    Declare Sub Schreibe_bmp085(byval Adres As Byte , Byval Wert As Byte)
    Declare Sub Lese_roh_daten
    Declare Sub Messen
    Declare Sub Lese_bmp085n(byval Adres As Byte , Wert As Byte , Wept As Byte)[/SIZE]
    [свернуть]


    А это математика его на баском, по другому никак , и памяти сжирает ужас сколько.

    bmp180

    '************************************************ работа с датчиком bmp180 *********************************************

    P_bmp180:

    Gosub Измерение
    Tt = Tt / 10
    Temperatur = Fusing(tt , "###.#")
    Potenz5255 = 1 / 5.255
    Altitude = Pp / 101325
    Altitude = Altitude ^ Potenz5255
    Altitude = 1 - Altitude
    Altitude = Altitude * 44330 'Altitude * 44330 коофициент для корректировки высоты
    Druck = Pp
    Druck = Druck / 133.3224 'перевести паскали в мм ртутного столба
    'Druck = Druck * 0.0075 '
    'Druck = Druck / 100 '
    Luftdruck = Fusing(druck , "####.#")
    Altitudes = Fusing(altitude , "#####.#")
    If Lcd_menu = 0 Then
    Call D3310position(0 , 3)
    Call D3310print( "Pr: ")
    Call D3310print(luftdruck)
    Call D3310position(0 , 2)
    Call D3310print( "Ht: ")
    Call D3310print(temperatur)



    'Lcd "Alt-" ; Altitudes
    End If
    Return

    Измерение:
    'Измерение температуры
    Call Schreibe_bmp085(&Hf4 , Term_180)
    Adres = &HF6
    Call Lese_bmp085n(adres , Lut , Mut)
    Call Berechne_temp

    Call Schreibe_bmp085(&Hf4 , &HB4 )
    Adres = &HF6
    Call Lese_bmp085n(adres , Mup , Lup )
    ' "для использования точного измерения давления раскоментировать строки."
    'I2cstart
    'I2cwbyte Addr_schreiben
    'I2cwbyte &HF8
    'I2cstart
    'I2cwbyte Addr_lesen
    'I2crbyte Xlup , Nack
    'I2cstop
    'Print Bin(up)
    '***********************************************************************
    Shift Up , Right , 5

    Call Berechne_druck
    Return



    Sub Lese_bmp085n(byval Adres As Byte , Wert As Byte , Wept As Byte)
    I2cstart
    I2cwbyte Addr_schreiben
    I2cwbyte Adres
    I2cstart
    I2cwbyte Addr_lesen
    I2crbyte Wert , Ack
    I2crbyte Wept , Nack
    I2cstop
    'Waitms 15
    End Sub

    Sub Schreibe_bmp085(byval Adres As Byte , Byval Wert As Byte)
    I2cstart
    I2cwbyte Addr_schreiben
    I2cwbyte Adres
    I2cwbyte Wert
    I2cstop
    Waitms 30
    End Sub



    Sub Berechne_temp
    'X1
    Ut = Ut - Ac6
    2potenz15 = 32768 '2 ^ 15
    Ac5a = Ac5 / 2potenz15
    X1t = Ut * Ac5a
    'X2
    2potenz11 = 2048 ' 2 ^ 11
    Mc2 = Mc * 2potenz11
    X3 = X1t + Md
    X2 = Mc2 / X3
    'B5
    B5 = X1t + X2
    'T
    2potenz4 = 16 ' 2 ^ 4
    T2 = B5 + 8
    Tt = T2 / 2potenz4
    End Sub


    Sub Berechne_druck
    'B6
    B6 = B5 - 4000
    'X1
    2potenz12 = 4096 ' 2 ^ 12
    B6a = B6 * B6
    B6a = B6a / 2potenz12
    Xx1 = B2 * B6a
    Xx1 = Xx1 / 2potenz11
    'X2
    X2 = Ac2 * B6
    X2 = X2 / 2potenz11
    'X3
    X3 = Xx1 + X2
    'B3
    Ac1a = Ac1 * 4
    Ac1a = Ac1a + X3
    Shift Ac1a , Left , 3
    Ac1a = Ac1a + 2
    B3 = Ac1a / 4
    2potenz13 = 8192 '2 ^ 13
    B6a = B6 * Ac3
    Xx1 = B6a / 8192
    'X2 die zweite
    B6a = B6 * B6
    B6a = B6a / 2potenz12
    X2 = Bb1 * B6a
    2potenz16 = 65536 '2 ^ 16
    X2 = X2 / 2potenz16
    'X3 die zweite
    X3 = Xx1 + X2
    X3 = X3 + 2
    2potenz2 = 4 ' 2 ^ 2
    X3 = X3 / 2potenz2
    'B4
    B4 = X3 + 32768
    B4 = B4 * Ac4
    B4 = B4 / 2potenz15
    If B4 <= 0 Then B4 = B4 * -1
    'B7
    B7 = Up - B3
    B3a = 50000
    Shift B3a , Right , 3 '
    B7 = B7 * B3a
    If B7 <= 0 Then B7 = B7 * -1
    If B7 < &H80000000 Then
    Pp = B7 * 2
    Pp = Pp / B4
    Else
    Pp = B7 / B4
    Pp = Pp * 2
    End If
    2potenz8 = 256 '2 ^ 8
    P2 = Pp / 2potenz8
    Xx1 = P2 * P2
    Xx1 = Xx1 * 3038
    Xx1 = Xx1 / 2potenz16
    ' nochmal X2
    X2 = -7357 * Pp
    X2 = X2 / 2potenz16
    P2 = Pp
    Pp = X2 + 3791
    Pp = Pp + Xx1
    Pp = Pp / 2potenz4
    Pp = Pp + P2

    End Sub
    [свернуть]


    И после этого не соглашусь, что нервный срыв будет у СИ-шника
    Я совершенно не против баса, но каждому короблю как говорится...

    - - - Добавлено - - -

    PS по секрету CodeVision AVR тоже поддерживает ардуинку+USB
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

  10. #9
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    858
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    101
    Поблагодарили
    68 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Стало кое-что известно про Никалауса Вирта. Не хотел это писать, что бы не обидеть Олега. Но поскольку Олег начал топик про модулу 2, то ему будет интересно что-то узнать новое.
    В период 1978–1981 гг. Вирт возглавлял проект, в результате которого был разработан язык Модула-2, ориентированный на него 16-разрядный персональный компьютер Лилит (Lilith) и ОС Medos. Все ПО, включая системное, было полностью реализовано на Модуле-2. В 1984 г. Никлаус Вирт за большой вклад в развитие языков программирования и за создание персонального компьютера Лилит был удостоен премии Алана Тьюринга (The ACM A.M.Turing Award) – самой престижной и почётной в компьютерном мире, которая по своему значению стоит в одном ряду с Нобелевской премией.
    Вроде, на первый взгляд, ничего такого нет плохого... А знаете ли вы что такое лилит?
    "Для своего компьютера он выбрал несколько странное название - "Лилит". Лилит в иудейской традиции - злой демон в женском обличии. Она овладевает мужчинами против их воли. Кстати, согласно одной из апокрифических легенд, Лилит под именем Лилу (помните такого персонажа в фильме "Пятый элемент"?) была женой Адама до сотворения Евы. Наверное, Вирт имел в виду то, что его компьютер овладеет всеми мужчинами против их воли (таким образом, очевидно, Вирт накликал компьютерную зависимость)." http://www.teleology.space/ru/news_ru/05102006-01_ru
    Никалаус Вирт прекрасно знал что означает слово лилит.
    Кроме того Никалаус Вирт участвовал в разработке алгола( писал в сообщении выше, как и о Тьюринге).
    В спойлере юмористический офтоп.))

    Скрытый текст


    Я задумался о распространении демосцены на спектруме. Мне, кажется, этим явлением нужно было кому-то руководить.
    Но кто бы это мог быть?... Неужели?..

    [свернуть]
    ¡Un momento, señor fiscal!


  11. #10
    Veteran Аватар для skyther
    Регистрация
    24.06.2005
    Адрес
    Лысьва
    Сообщений
    1,205
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Тьюринг был гомиком и самоубийцей!
    а страус вапще труп!

Страница 1 из 7 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Программирование в Pascal (сишники идут лесом)
    от Smalovsky в разделе Творчество
    Ответов: 22
    Последнее: 29.12.2016, 23:09
  2. Ответов: 0
    Последнее: 17.01.2015, 21:02
  3. Ответов: 4
    Последнее: 29.01.2009, 01:06

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •