roboforum.ru

Технический форум по робототехнике.

нужна помощь в Bascom AVR

нужна помощь в Bascom AVR

EasyTech » 15 июн 2011, 11:21

Такое дело, мне нужно объединить две готовые программы, но в них есть циклы do...loop, как я знаю цикл в программе Bascom AVR может быть только один, как можно обеъдинить программы с циклами? :(

Добавлено спустя 13 минут 44 секунды:
вот два цикла
Код: Выделить всёРазвернуть
 Do
Start Adc : АЦП1 = Getadc(0)
If АЦП1 >= 500 Then : Gosub Отъехать_от_препятствия_спереди : Else : Gosub Вперёд : End If
  Loop

Код: Выделить всёРазвернуть
Do
   Gosub Прием_rc5
   If Command = 255 Then
      Gosub Стоп
       Waitms 0
  Elseif Command = 32 Then
      Gosub Прямо
       Waitms 0
   Elseif Command = 33 Then
      Gosub Назад
       Waitms 0
   Elseif Command = 17 Then
      Gosub Влево
       Waitms 0
   Elseif Command = 16 Then
      Gosub Вправо
       Waitms 0
   End If
Loop

Re: нужна помощь в Bascom AVR

galex1981 » 15 июн 2011, 11:42

Например склеить обе программы. Например так:
Код: Выделить всёРазвернуть
Do
Start Adc : АЦП1 = Getadc(0)
If АЦП1 >= 500 Then : Gosub Отъехать_от_препятствия_спереди : Else : Gosub Вперёд : End If 
Gosub Прием_rc5   
If Command = 255 Then     
   Gosub Стоп       
   Waitms 0 
Elseif Command = 32 Then     
   Gosub Прямо       
   Waitms 0   
Elseif Command = 33 Then     
   Gosub Назад       
   Waitms 0   
Elseif Command = 17 Then     
   Gosub Влево       
   Waitms 0   
Elseif Command = 16 Then     
   Gosub Вправо       
   Waitms 0   
End If
Loop

Re: нужна помощь в Bascom AVR

EasyTech » 15 июн 2011, 12:14

Нельзя!
BascomAVR - компилятор пишет, типо что это за фигня, такого быть не может! :(

Добавлено спустя 10 минут 25 секунд:
Кто может дать пример с программой датчика поверхности :(

Re: нужна помощь в Bascom AVR

=DeaD= » 15 июн 2011, 12:19

Для отдельного вот такое есть: [[OR-BWSENS]]

Re: нужна помощь в Bascom AVR

EdGull » 15 июн 2011, 12:34

Можно!
Просто он наверно на "Waitms 0" ругается

Re: нужна помощь в Bascom AVR

EasyTech » 15 июн 2011, 12:42

Гуль, а если всё совмещать, то нужно переменных 2х программ соединить и конфигурации портов, да?
И что можно циклы просто складывать?
А что если циклы по разному назваются?
Do...Loop Until или While ... Wend?

Re: нужна помощь в Bascom AVR

avr123.nm.ru » 15 июн 2011, 12:51

Посмотрите примеры BASCOM

Re: нужна помощь в Bascom AVR

Skyline » 15 июн 2011, 13:50

Почитай здесь про циклы.

Re: нужна помощь в Bascom AVR

EasyTech » 15 июн 2011, 18:50

Вот интересный вопрос, можно ли на Бейсике реализовать такую тему:
При нажатии кнопки, чтобы менялась программа, т.е. не нужно будет каждый раз прошивать МК.
Если можно скажите как, или лучше дайте скелет такой программы.

Re: нужна помощь в Bascom AVR

EasyTech » 21 июн 2011, 18:39

Люди не кто не знает как расширить порты на Bascom AVR?

Re: нужна помощь в Bascom AVR

osc » 21 июн 2011, 18:45

Можно расширить при помощи вот такой микросхемы:
http://avrdevices.ru/rasshiritely-portov-mcp23008/
Подключается по I2C, про это наверняка есть в хелпе баскома.

Re: нужна помощь в Bascom AVR

EasyTech » 22 июн 2011, 23:02

Гуль, точно можно "склеивать" программы совмещая циклы? :sorry:

Re: нужна помощь в Bascom AVR

galex1981 » 22 июн 2011, 23:14

Если переменные и функции не пересекаются - можно

Добавлено спустя 1 минуту 15 секунд:
С другой стороны, можно после склейки программу прогнать дебаггером, проверить в Протеусе и т. д... и там сразу видно все будет, правильно склеил или нет

Re: нужна помощь в Bascom AVR

Rigo Legio » 29 ноя 2011, 23:50

Не хотел тему создавать, но мне тоже помощь по Баскому нужна. Начал осваивать программирование 2 дня назад, уже и светодиодом помигал, и несколькими светодиодами по очереди, и с кнопкой. А вот сейчас пытаюсь написать код для робота, чтобы с контактными датчиками ездил, и не фурычит. Пробовал пока с одним бампером, но не пашет
Код: Выделить всёРазвернуть
$regfile = "ATtiny2313.DAT"                                 '-Attiny2313
$crystal = 4000000                                          ' указываем на какой частоте будем работать
'--------Описание портов-----------------

Config Pind.2 = Output : Dr1 Alias Portd.2
Config Pind.3 = Output : Dr2 Alias Portd.3
Config Pind.4 = Output : Dr3 Alias Portd.4
Config Pind.5 = Output : Dr4 Alias Portd.5
Config Pind.0 = Input : Pr1 Alias Portd.0

Do
If Pr1 = 1 Then : Gosub Вправо
Else : Gosub Вперёд
Loop Until Pr1 = 0
Return



'-------------------------Движение---------------------------------

Вперёд:                                                     'едем вперёд
Dr1 = 0 : Dr2 = 1 : Dr3 = 1 : Dr4 = 0
Return

Вправо:                                                     'поворачиваем вправо
Dr1 = 1 : Dr2 = 0 : Dr3 = 1 : Dr4 = 0
Return


End If
End

Re: нужна помощь в Bascom AVR

cudi » 30 ноя 2011, 11:38

Попробуй так:
Код: Выделить всёРазвернуть

$regfile = "ATtiny2313.DAT"                                 '-Attiny2313
$crystal = 4000000                                          ' указываем на какой частоте будем работать
'--------Описание портов-----------------
Config Pind.2 = Output : Drl Alias Portd.2
Config Pind.3 = Output :  Drr Alias Portd.3
Config Pind.4 = Output : Dre Alias Portd.4
Config Pind.5 = Output : Drw Alias Portd.5
Config Pind.0 = Input : Pr1 Alias Portd.0
Pr1 = 1
Do
Gosub Прямо
If Pr1 = 0 Then : Gosub назад : Waitms 3000 : Gosub Влево : Waitms 3000
End if
Loop
Return



'-------------------------Движение---------------------------------

Налево:                                                     ' едим налево
   Drl = 0 : Drr = 1 : Dre = 1 : Drw = 0: Return

Направо:                                                    ' едим направо
   Drl = 1 : Drr = 0 : Dre = 0 : Drw = 1 : Return

Прямо:                                                      ' едим прямо
  Drl = 1 : Drr = 0 : Dre = 1 : Drw = 0 : Return

Назад:                                                      ' едим назад
   Drl = 0 : Drr = 1 : Dre = 0 : Drw = 1 : Return

Стоп:                                                       ' стоим на месте
  Drl = 0 : Drr = 0 : Dre = 0 : Drw = 0 : Return

Давно я работал на бейсике, сейчас пишу на winavr, если нужно могу написать :)
Вообще посмотри вот здесь: http://cdxp.zx6.ru/sources/?p=61


Rambler\'s Top100 Mail.ru counter