roboforum.ru

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

AVR-DOS для МиниБота

Готовая электроника для самодельного робота. Уровень от начинающих до опытных конструкторов.

Re: AVR-DOS для МиниБота

Сообщение EdGull » 11 янв 2009, 09:38

энкодеры двойные
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: AVR-DOS для МиниБота

Сообщение MiBBiM » 11 янв 2009, 15:58

уменьшил размер стека, выкинул некоторые команды.
установил более жесткие ограничения на длины токенов(слов интерпретатора) и их количество.
итог: свободно 65% флеша, 404 байта озу.
добавил отладочные строки, очень хотелось бы посмотреть что выводит реальное устройство
=DeaD= писал(а):Не понял

мб вы предложили бы суперсложный алгоритм :D вот я и спросил
Вложения
tester.rar
файл и прошивка interpreter test
(87.14 КиБ) Скачиваний: 29
1.JPG
к чему стремимся
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: AVR-DOS для МиниБота

Сообщение EdGull » 11 янв 2009, 16:09

ну так давай новый код, старый ругается.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: AVR-DOS для МиниБота

Сообщение MiBBiM » 11 янв 2009, 16:12

Interpreter test.bas
INTERPRETER TEST.HEX
в архиве tester.rar
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: AVR-DOS для МиниБота

Сообщение EdGull » 11 янв 2009, 16:13

и чё не выкладываешь этот волшебный архив?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: AVR-DOS для МиниБота

Сообщение MiBBiM » 11 янв 2009, 16:15

:crazy: а в верхнем сообщении его нет?
странно.
Вложения
tester.rar
репост
(87.14 КиБ) Скачиваний: 21
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: AVR-DOS для МиниБота

Сообщение EdGull » 11 янв 2009, 16:33

вот что написало на FS 1

fs 1
GOTCHA! You have entered string:AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0>m0>AVR-DO
S: Ready f0>m0>AVR-DOS: Ready f0
Begin to extract tokens
lpos2, token1:9
token1(pos,len):1,8
lpos2, token2:0
token2(pos,len):10,71
Tokens are extracted
Begin to extract next token as string
Res string:AVR-DOS:
First command token is:AVR-DOS:
Command 'AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0>m0>AVR-DOS:
Ready f0' not recognized

0000>
GOTCHA! You have entered string:
Begin to extract tokens
Tokens are extracted

0000>GOTCHA! You have e00>GOTCHA! You have e00>GOTCHA! You have e00>GOTCHA! You
have
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: AVR-DOS для МиниБота

Сообщение MiBBiM » 11 янв 2009, 16:44

у терминала бод рейт какой? в исходнике 19200, попробуйте перекомпилировать с меньшей скоростью уарт

Добавлено спустя 1 минуту 3 секунды:
да нажатия ентера, он повторяет пользовательский ввод?(бэкспейс работать должен)
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: AVR-DOS для МиниБота

Сообщение EdGull » 11 янв 2009, 16:50

себе везде поставил 115200
это теперь стандарт в миниботах

Добавлено спустя 5 минут 40 секунд:
на 19200 тоже самое
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: AVR-DOS для МиниБота

Сообщение MiBBiM » 11 янв 2009, 17:33

таакс. теперь при вводе fs 1 он будет возвращать код каждого принятого символа, в том числе ентера.(при этом первоначальный ввод не сохраняется. буквы команды будут висеть перед "getsymbol")
увеличил размер буфера приема уарта, снизил скорость до 2400, добавил задержку 250мс после вывода приглашения.
увеличил стек до неприличия. проверьте частоту мк.
на этом мои рецепты пока закончились

Добавлено спустя 1 минуту 21 секунду:
P.S. выкладывайте плиз скриншот терминала, не видно, выводится ли надпись приветствия :)

Добавлено спустя 1 минуту 48 секунд:
вообще, такое ощущение что он считает юзерским вводом отправленные мною же символы. оч странно для дуплекса
Вложения
1.JPG
вот что должно получится.
tester2.rar
новый код
(88.3 КиБ) Скачиваний: 25
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: AVR-DOS для МиниБота

Сообщение EdGull » 11 янв 2009, 17:37

по циклу лупит кучу всего
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: AVR-DOS для МиниБота

Сообщение MiBBiM » 11 янв 2009, 18:08

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

здесь он принимает символ:
Код: Выделить всёРазвернуть
Do
  Gbinp = Waitkey()                                         ' get user input
  If Gbinp <> 0 Then                                        ' something typed in?
      If Gbinp = 27 Then                                    ' use ESC for exit from interpreter
         Exit Do
      End If
      Waitms 500
      Print "get symbol:" ; Gbinp
      Waitms 500
      Getinput Gbinp                                        ' give input to interpreter
  End If
Loop       

здесь он обрабатывает символы и составляет из них большую строку Gspcinput:
Код: Выделить всёРазвернуть
Sub Getinput(pbbyte As Byte)
   ' stores bytes from user and wait for CR (&H13)
   Select Case Pbbyte
      Case &H0A                                             ' do nothing
      Case &H0D                                             ' Line-end?
         Print Chr(&H0d) ; Chr(&H0a) ;
               Print "GOTCHA! You have entered string:" ; Gspcinput
         Docommand                                          ' analyse command and execute
         Gbpcinputpointer = 1                               ' reset for new user-input
         Gspcinput = ""
         Printprompt
      Case &H08                                             ' backspace ?
         If Gbpcinputpointer > 1 Then
            Print Chr(&H08);
            Decr Gbpcinputpointer
         End If
      Case Else                                             ' store user-input
         If Gbpcinputpointer <= Cpcinput_len Then
            Mid(gspcinput , Gbpcinputpointer , 1) = Pbbyte
            Incr Gbpcinputpointer
            Mid(gspcinput , Gbpcinputpointer , 1) = &H00    ' string-terminator
            Print Chr(pbbyte);                              ' echo back to user
         End If
   End Select
End Sub


где-то в этих процедурах происходит ошибка. об этом можно судить по тому что у вас в терминале
EdGull писал(а):GOTCHA! You have entered string:AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0>m0>AVR-DOS: Ready f0

это строка пользовательского ввода :shock: , что очень странно, поскольку эхо работает(или нет? среда должна получится такая же как и в виндоус командной строке (пуск, выполнить, cmd))
если этот тест не пройдет, то просто перепишу пользовательский ввод(например, команда Input должна работать как раз так же, как и эти две процедуры, только бэкспейс и ескейп поддерживаться не будут)
Вложения
1.JPG
что должно выводить
tester4.rar
последняя
(83.41 КиБ) Скачиваний: 23
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: AVR-DOS для МиниБота

Сообщение EdGull » 11 янв 2009, 18:17

снова по циклу лупит
вот кусок
get symbol:99
cget symbol:111
oget symbol:109
mget symbol:109
mget symbol:97
aget symbol:110
nget symbol:100
dget symbol:115
sget symbol:13

GOTCHA! You have entered string:AVR-DOS: Ready for commands
Command 'AVR-DOS: Ready for commands' not recognized

0000>get symbol:10
get symbol:13

GOTCHA! You have entered string:

0000>get symbol:10
get symbol:48
0get symbol:48
0get symbol:48
0get symbol:48
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: AVR-DOS для МиниБота

Сообщение MiBBiM » 11 янв 2009, 18:49

ну вот видите. опять та же ситуация: то что я печатаю на выход чудесным образом превращается во вход :crazy: так, вначале вывожу первую строку
AVR-DOS: Ready for commands
.
принимаю её обратно(как если бы пользователь её ввел):
get symbol:99
cget symbol:111
oget symbol:109
mget symbol:109
mget symbol:97
aget symbol:110
nget symbol:100
dget symbol:115
sget symbol:13

прослеживается слово commands(читая по вертикали). далее процесс повторяется:
get symbol:10
get symbol:48
0get symbol:48
0get symbol:48
0get symbol:48

начинает выводить строку: 0000>get symbol:10

как будто rx-tx закоротили :crazy:

переписал процедуру ввода. должна работать 100%. иначе :shock:
Вложения
t5.rar
:shock:
(83.42 КиБ) Скачиваний: 20
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: AVR-DOS для МиниБота

Сообщение EdGull » 11 янв 2009, 18:51

да, так и есть rx-tx закорочен
нужно отключать rx при передаче
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Пред.След.

Вернуться в МиниБот — национальный класс роботов

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9