roboforum.ru

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

 

Работа над ошибками

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Работа над ошибками

Сообщение Timmy » 29 мар 2009, 23:03

глупо но всетаки, наверно гдето накосячил
совершенно простой код
только вопрос в чем ошибка

программируется мега8 на миниботе, с включенной mg995 на х10,
привод дергается раз и все
код на bascom-avr в симуляторе вроде все окей


Код: Выделить всёРазвернуть
$prog &HFF , &HE0 , &HDD , &HF9                             ' generated. Take care that the chip supports all fuse bytes.

$regfile = "m88DEF.dat"
$baud = 115200
$crystal = 7372800

Config Pinb.1 = Output : Servo1 Alias Portb.1 : Servo1 = 0
Config Pinb.2 = Output : Servo2 Alias Portb.2 : Servo2 = 0
Config Pinc.0 = Output : Servo3 Alias Portc.0 : Servo3 = 0
Config Pinc.1 = Output : Servo4 Alias Portc.1 : Servo4 = 0

Declare Sub Stay
Declare Sub Down
Declare Sub Up

Waitms 250

Dim Xxxx As integer
Dim Yyyy As Integer
Dim Zzzz As Integer

For Xxxx = 0 To 100
         Call Stay
Next Xxxx

For Yyyy = 0 To 100
   Call Up
Next Yyyy

For Zzzz = 0 To 100
   Call Down
Next Zzzz

Sub Stay
Servo1 = 1
    'Waitus 20
Servo1 = 0
   Waitus 1500
End Sub

Sub Up
Servo1 = 1
  ' Waitus 20
Servo1 = 0
    Waitus 2100
End Sub

Sub Down
Servo1 = 1
  'Waitus 20
Servo1 = 0
   Waitus 900
End Sub
Последний раз редактировалось Timmy 29 мар 2009, 23:15, всего редактировалось 1 раз.
нехватает запятых? возьми пару отсюда ,,,,,,,,,,,,,,,,,,, =)
Timmy
 
Сообщения: 225
Зарегистрирован: 13 янв 2009, 11:19
Откуда: Санкт Петербург

Re: Работа над ошибками

Сообщение executer » 29 мар 2009, 23:11

Щас будут кричать что не в поле кода код лежит (между тэгами "Code" размещай свой код)

Добавлено спустя 7 минут 2 секунды:
Что означают апострофы перед строчками:
'Waitus 20
??? Если коммент - то на серву ноль впринципе идет с оооочень короткими единичными импульсами
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: Работа над ошибками

Сообщение Timmy » 29 мар 2009, 23:20

20 микросекунд длина импульса
но в итоге закоментировано, тк с длиной в один скан вчера отъезжало в одну сторону,
сегодня оно только дергается, один раз...

основной вопрос как цифромашинками рулить, какая длина импульсов и в чем грабля

ХАХАХАХАХА
БУГАГА

я ступил
Порт Б-1
выходит на х11 а не на х10 ха ха ха мне смешно
Последний раз редактировалось Timmy 29 мар 2009, 23:26, всего редактировалось 1 раз.
нехватает запятых? возьми пару отсюда ,,,,,,,,,,,,,,,,,,, =)
Timmy
 
Сообщения: 225
Зарегистрирован: 13 янв 2009, 11:19
Откуда: Санкт Петербург

Re: Работа над ошибками

Сообщение avr123.nm.ru » 29 мар 2009, 23:25

executer писал(а):Что означают апострофы перед строчками:
'Waitus 20
Если коммент

Да это коментарий. Там есть руководства на руском по BASCOM-AVR - http://bascom-avr.narod.ru

executer писал(а):то на серву ноль впринципе идет с оооочень короткими единичными импульсами


Вы можете прошивку .hex симулировать в VMLAB PROTEUS в студии или подать сигнал через 47 кОм на звуковую карту и посмотреть что там реально на выходе.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Работа над ошибками

Сообщение galex1981 » 29 мар 2009, 23:45

Там где у тебя закомментировано 20 мкс, должны быть установлены задержки 900-2100 мкс, проблема будет решена. Сервы реагируют не на 0е сигналы, длительностью 900-2100 а на единичные:
900 мкс - крайнее левое положение сервы
1500 мкс - середина
2100 мкс - крайнее правое положение

Добавлено спустя 1 минуту 19 секунд:
пример кода можешь посмотреть ЗДЕСЬ
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Работа над ошибками

Сообщение Timmy » 29 мар 2009, 23:53

спасибо вот теперь все как надо
серва поворачивает туда сюда, как надо
Код: Выделить всёРазвернуть
$prog &HFF , &HE0 , &HDD , &HF9                             ' generated. Take care that the chip supports all fuse bytes.

$regfile = "m88DEF.dat"
$baud = 115200
$crystal = 7372800

Config Pinb.2 = Output : Servo1 Alias Portb.2 : Servo1 = 0

Declare Sub Stay
Declare Sub Down
Declare Sub Up


Waitms 250

Dim Xxxx As integer
Dim Yyyy As Integer
Dim Zzzz As Integer

For Xxxx = 0 To 5000
         Call Stay
Next Xxxx

For Xxxx = 0 To 5000
   Call Up
Next Xxxx

For Xxxx = 0 To 5000
   Call Down
Next Xxxx

Sub Stay
Servo1 = 1
    Waitus 1500
Servo1 = 0
End Sub

Sub Up
Servo1 = 1
   Waitus 2100
Servo1 = 0
End Sub

Sub Down
Servo1 = 1
  Waitus 900
Servo1 = 0
End Sub
нехватает запятых? возьми пару отсюда ,,,,,,,,,,,,,,,,,,, =)
Timmy
 
Сообщения: 225
Зарегистрирован: 13 янв 2009, 11:19
Откуда: Санкт Петербург

Re: Работа над ошибками

Сообщение Timmy » 16 апр 2009, 09:37

поможите с методом INPUT
при вызове инпут не пишется переменная
те она как была 0 так и остается

Код: Выделить всёРазвернуть
$prog &HFF , &HBD , &HC9 , &H00                             ' generated. Take care that the chip supports all fuse bytes.
$regfile = "m32def.dat"                                     ' ôàéë ñïåöèôèêàöèè Ìåãè32
$crystal = 7372800                                          ' óêàçûâàåì íà êàêîé ÷àñòîòå áóäåì ðàáîòàòü

$baud = 115200                                              ' óêàçûâàåì ñêîðîñòü íà êîòîðîé áóäåò ðàáîòàòü óàðò

$include "Config ports.bas"

Dim Rdddr As Integer : Rdddr = 1

Waitms 5000
Print "Start MiniBot v2.0"

Do
Print "x" ; Rdddr
Input "test " , Rdddr Noecho
Print
Waitms 10
Print Rdddr ; "xxx"

Loop
нехватает запятых? возьми пару отсюда ,,,,,,,,,,,,,,,,,,, =)
Timmy
 
Сообщения: 225
Зарегистрирован: 13 янв 2009, 11:19
Откуда: Санкт Петербург

Re: Работа над ошибками

Сообщение galex1981 » 16 апр 2009, 10:03

Пробуй так:
Код: Выделить всёРазвернуть
Print "test ";
Input Gspcinput Noecho

То есть разделяй то что выводишь в терминал от того что вводишь
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Работа над ошибками

Сообщение Timmy » 16 апр 2009, 11:20

я пробовал и так,
так вобще не останавливается на инпут...

если Input "text", var то останавливается на первом инпуте и через один
окно терминала

Start MiniBot v2.0
x1
test 11
0xxx
x0
test
0xxx
x0
test

все оч интересно,
изначально переменная равна 1
далее вводим 11(неважно что вводим)
опа переменная теперь 0
следующий цикл опроса просто пролетаем без поодтверждения
Последний раз редактировалось Timmy 16 апр 2009, 11:45, всего редактировалось 1 раз.
нехватает запятых? возьми пару отсюда ,,,,,,,,,,,,,,,,,,, =)
Timmy
 
Сообщения: 225
Зарегистрирован: 13 янв 2009, 11:19
Откуда: Санкт Петербург

Re: Работа над ошибками

Сообщение galex1981 » 16 апр 2009, 11:44

Кстати перед командой Input нужно выполнять: Clear Serialin
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Работа над ошибками

Сообщение Timmy » 16 апр 2009, 12:20

на конфиг сериалин
просто пролетает без остановок

загрузил пример
Код: Выделить всёРазвернуть
$prog &HFF , &HE4 , &HD9 , &H00                            ' generated. Take care that the chip supports all fuse bytes.
$regfile = "m32def.dat"                                     ' ôàéë ñïåöèôèêàöèè Ìåãè32
$crystal = 7372800                                          ' óêàçûâàåì íà êàêîé ÷àñòîòå áóäåì ðàáîòàòü
$baud = 115200                                              ' óêàçûâàåì ñêîðîñòü íà êîòîðîé áóäåò ðàáîòàòü óàðò
$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space



Dim V As Byte , B1 As Byte

Dim C As Integer , D As Byte

Dim S As String * 15



Input "Use this to ask a question " , V

Input B1                                                    'leave out for no question



Input "Enter integer " , C

Print C





Inputhex "Enter hex number (4 bytes) " , C

Print C

Inputhex "Enter hex byte (2 bytes) " , D

Print D



Input "More variables " , C , D

Print C ; " " ; D



Input C Noecho                                              'supress echo



Input "Enter your name " , S

Print "Hello " ; S



Input S Noecho                                              'without echo

Print S

End

так с ним тоже пролетание через один инпут и 0 в переменных

Код: Выделить всёРазвернуть
Use this to ask a question Usn fhfg

Enter integer

0
Enter hex number (4 bytes) r ) 1234
-20352
Enter hex byte (2 bytes)
0
More variables
               )s
                  ) gfjhhg\

0 0
Enter your name 0
Hello 0
e 0
lk;lk


плз если кому не сложно
киньте пример под 32 мегу с фусибитами
нехватает запятых? возьми пару отсюда ,,,,,,,,,,,,,,,,,,, =)
Timmy
 
Сообщения: 225
Зарегистрирован: 13 янв 2009, 11:19
Откуда: Санкт Петербург

Re: Работа над ошибками

Сообщение galex1981 » 16 апр 2009, 14:45

Еще раз повторю:
Код: Выделить всёРазвернуть
Input "Use this to ask a question " , V

Так в васике глючит
делается так:
Код: Выделить всёРазвернуть
print "Use this to ask a question " 
Clear Serialin
Input V

Работать будет - сам проверял

Добавлено спустя 1 час 17 минут 53 секунды:
В Миниботе 2.0 для удобства разработчикам закорочены выводы Rx и Tx в UATRе, потому при передачи сообщения робот "слышит" сам себя. Для того чтоб он сам себя не слышал программно print оборачивают так:
Код: Выделить всёРазвернуть
   Ucsr0b.rxen0 = 0
   Print Text
   Ucsr0b.rxen0 = 1


Добавлено спустя 46 минут 57 секунд:
Ниже привожу код приема строки по прерыванию:
Код: Выделить всёРазвернуть
$prog &HFF , &HE0 , &HDD , &HF9                             ' для минибота 2.0
'27mhz 250kbps

$hwstack = 32
$swstack = 10
$framesize = 40

$regfile = "m88DEF.dat"
$baud = 115200
$crystal = 7372800

On Urxc Getchar                                             'переопределяем прерывание на передачу по usart
Enable Interrupts                                           'разрешаем прерывания
Enable Urxc

Dim Text As String * 15                                     'строка для отправки/приема (длина строки 15 символов)
Dim Text_tmp As String * 15
Dim Txt_ As Byte


Do 'Главный цикл
.....
Loop

Getchar:
   Txt_ = Inkey()
   If Txt_ > 13 Then          'не служебные символы
      Text_tmp = Chr(txt_)
      Text = Text + Text_tmp
   End If
   If Txt_ = 13  Then'нажали ввод
         'строка в Text принята
   End If
Return

if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Работа над ошибками

Сообщение Timmy » 16 апр 2009, 15:20

спасибо разбираюсь
нехватает запятых? возьми пару отсюда ,,,,,,,,,,,,,,,,,,, =)
Timmy
 
Сообщения: 225
Зарегистрирован: 13 янв 2009, 11:19
Откуда: Санкт Петербург

Re: Работа над ошибками

Сообщение EdGull » 16 апр 2009, 15:26

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

Re: Работа над ошибками

Сообщение galex1981 » 16 апр 2009, 16:38

Для Меги32 этот регистр UCSRB.RXEN
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

След.

Вернуться в Новичкам или основы основ роботостроения.

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 4

Mail.ru counter