roboforum.ru

Технический форум по робототехнике.
Текущее время: 16 май 2024, 17:21

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 19 сен 2011, 10:17 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
Когда в программе используются коды
Код:
Config Servos = 1 , Servo1 = Portb.3 , Reload = 11

и
Код:
Прием3_rc5:
     Getrc5(address , Command)
     If Address <> 255 And Command <> 255 Then
        Command = Command And &B01111111
     End If
Return


то она не компилируется, стоит убрать код с настройкой сервоприводов, всё компилируется. на скрине видно ошибку которую выдаёт компилятор при компиляции кода "Dublicate label". Почему может быть так?


Вложения:
1.jpg
1.jpg [ 177.26 КиБ | Просмотров: 15900 ]

_________________
https://vk.com/ledscale - платы, vk.com/ledscale3dprintig - 3Д печать\моделирование, vk.com/ledrenovation- ремонт светодиодных источников света
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 19 сен 2011, 11:25 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4362
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Похоже что Config servos и Getrc5 используют одни и те же метки с одинаковыми именами. Скинь весь проект я гляну поближе на него

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 19 сен 2011, 11:35 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
Вот проект, так он в полном объёме должен быть

Добавлено спустя 3 минуты 16 секунд:
даже банально, обрезать весь код по максимуму:


Код:
$regfile = "m16def.dat"                                     'используем мк ATmega16
$crystal = 16000000                                         'частота кварцевого резонатора 16mHz
$baud = 19200                                               'устанавливаем скорость для UART


Ddrc = &B11111111                                           ' Все порты B выставляем на выход

Config Servos = 5 , Servo1 = Portc.3 , Servo2 = Portc.4 , Servo3 = Portc.5 , Servo4 = Portc.6 , Servo5 = Portc.7 , Reload = 12       ' Указываем кол-во серв, присваеваем имя Servo№ PC№ , указываем длину импульса.



Config Rc5 = Pind.2


Enable Interrupts                                           ' разрешаем прерывания





'************************Переменные и константы*********************************
'*******************************Переменные**************************************

Dim Address As Byte , Command As Byte



Do
   Gosub Прием_rc5
Loop

Прием_rc5:
   Getrc5(address , Command)
   If Address <> 255 And Command <> 255 Then
      Command = Command And &B01111111
      'Print Chr(12);       ' выводим в терминал символ
      'Print "Address - " ; Address;       ' выводим в терминал адрес
      'Print "Command - " ; Command;       ' выводим в терминал номер команды
   End If
Return


всё равно почти тоже самое (последней третьей ошибки нет)


Вложения:
1.jpg
1.jpg [ 145.34 КиБ | Просмотров: 15812 ]
Архив WinRAR.rar [15.07 КиБ]
Скачиваний: 0

_________________
https://vk.com/ledscale - платы, vk.com/ledscale3dprintig - 3Д печать\моделирование, vk.com/ledrenovation- ремонт светодиодных источников света
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 19 сен 2011, 12:24 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4362
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
В общем проблем было несколько:
1) Раз ты используешь для чего непонятно - кучу файлов - где определяешь конфиги, где функции, причем не пишешь их прототипы, в результате чего у тебя во всем проекте каша; так приводи проект в нормальный порядок а не функция там а основной файл ее не видит по вышеуказанным причинам
2) Используешь названия функции с маленькой буквы а вызываешь с большой (для английских вариантов названия функций регистр неважен, а если называешь функции русскими буквами - то очень важен)
3) В хелпе по Config servo написано что можно менять таймер. То есть у тебя для 2х функций использовался один таймер, потому шли конфликты
Код:
'as an option you can use TIMER1
'Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10 , Timer = Timer1


В общем переделанный проект прилагаю - смотри какие у тебя были ошибки.
А вообще советую все таки русские названия не использовать как и в других языках программирования.


Вложения:
переделанный проект.rar [13.05 КиБ]
Скачиваний: 0

_________________
if(!Operate) Read(pDatasheet);
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 19 сен 2011, 13:07 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
galex1981 писал(а):
В общем проблем было несколько:
1) Раз ты используешь для чего непонятно - кучу файлов - где определяешь конфиги, где функции, причем не пишешь их прототипы, в результате чего у тебя во всем проекте каша; так приводи проект в нормальный порядок а не функция там а основной файл ее не видит по вышеуказанным причинам

потому что найти так проще :) Если всё в одном файле, то нужный кусок искать тяжело, а так всё по полочкам :)
galex1981 писал(а):
3) В хелпе по Config servo написано что можно менять таймер. То есть у тебя для 2х функций использовался один таймер, потому шли конфликты
Код:
'as an option you can use TIMER1
'Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10 , Timer = Timer1


В общем переделанный проект прилагаю - смотри какие у тебя были ошибки.
А вообще советую все таки русские названия не использовать как и в других языках программирования.

Понял :) Спасибо, про таймер я и забыл :-|


Ток не понял зачем это:
Код:
Declare Sub Прием_rc5
- Прием_rc5 же не процедура, а всего лишь метка, или это тот самый прототип??))

Добавлено спустя 23 минуты 24 секунды:
вот только проблема, с timer1 сервы не крутятся вообще
переделанный код залил прям чтоб проверить и всё, на пульт реакции нет.

прошил тестовую прогу для пульта, которую не давно писал ие-приёмник работает, сигналы принимает

может для таймера ещё какие настройки надо сделать?

_________________
https://vk.com/ledscale - платы, vk.com/ledscale3dprintig - 3Д печать\моделирование, vk.com/ledrenovation- ремонт светодиодных источников света


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 19 сен 2011, 13:50 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4362
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
1) Прием_rc5 это и есть прототип метки.
2) Таймер 3 попробуй...

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 19 сен 2011, 19:42 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
попробовал и timer1 и timer2
вообще ладно, смысл понятен, потом отдельно код состряпаю и попробую, за помощь спасиб :)

_________________
https://vk.com/ledscale - платы, vk.com/ledscale3dprintig - 3Д печать\моделирование, vk.com/ledrenovation- ремонт светодиодных источников света


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 25 сен 2011, 02:27 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
пробую щас работать с энкодером. В программе сделал управление сервоприводом. Меняется переменная W в диапозоне от 33 до 150. При вращение энкодера переменная уменьшается или увеличивается, в зависимости от направления вращения, на единицу. Для этого использую команды Incr, Decr. Надо сделать чтобы переменная увеличивалась не на единицу, а сразу единиц на 10-15. Собственно в этом и затруднение

Код:
$regfile = "m16def.dat"                                     ' файл спецификации Меги32
$crystal = 16000000                                         ' указываем на какой частоте будем работать

$lib "lcd4.lbx"

$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

Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2
Config Servos = 1 , Servo1 = Portd.7 , Reload = 11

Dim W As Integer

Config Int0 = Falling

On Int0 Getencoder

Enable Interrupts
Enable Int0

Cha Alias Pind.2
Chb Alias Pind.3

Config Cha = Input
Config Chb = Input

Cls
Cursor Off



Do

If W > 150 Then W = 33

If W < 33 Then W = 150

  Servo(1) = W

   Locate 1 , 1

    Lcd "encounter: " ; W ; "     "

     Waitms 100
Loop

Getencoder:

If Cha = 0 Then
If Chb = 0 Then Incr W Else Decr W
End If
Waitms 5
Gifr = 64
Return


End

_________________
https://vk.com/ledscale - платы, vk.com/ledscale3dprintig - 3Д печать\моделирование, vk.com/ledrenovation- ремонт светодиодных источников света


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 25 сен 2011, 02:55 
Не в сети
Аватара пользователя

Зарегистрирован: 19 янв 2010, 14:51
Сообщения: 979
Откуда: Петрозаводск
прог. языки: C, FBD, Wiring-Processimg,,,LD, SFC, ST...
ФИО: Вадим
вместо Incr W используйте W = W + 10 , а вместо Decr W соответственно W = W - 10...

_________________
Роботы, уже среди нас...
Прошу прощения за аватар, никак схему динамической индикации не могу настроить :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 25 сен 2011, 02:58 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
:) я пробовал так не катит

Добавлено спустя 2 минуты 30 секунд:
а нет :D работает. решил попробовать ещё раз)) Видать когда пробовал, не так что то прописал)) спасиб :wink:

_________________
https://vk.com/ledscale - платы, vk.com/ledscale3dprintig - 3Д печать\моделирование, vk.com/ledrenovation- ремонт светодиодных источников света


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 30 сен 2011, 19:48 
Не в сети

Зарегистрирован: 19 май 2006, 18:30
Сообщения: 25
Откуда: Великие Луки
Блин объясните почему нельзя транслитом пользоваться... А если хочеться?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 30 сен 2011, 20:42 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Потому что разбирать что ты там понаписал в таком случае - дополнительная трата времени. Я такие сообщения в лучшем случае игнорирую.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 01 окт 2011, 23:28 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
Использую сдвиговый регистр 74HC595. Светодиоды за счёт него научился включать. Ни чего сложного, но вот как управлять сервоприводом за счёт сдвигового регистра в BascomAVR? Почитал теорию в вике, но понятней не стало

_________________
https://vk.com/ledscale - платы, vk.com/ledscale3dprintig - 3Д печать\моделирование, vk.com/ledrenovation- ремонт светодиодных источников света


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 01 окт 2011, 23:37 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Попробуйте HC4017

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ
СообщениеДобавлено: 01 окт 2011, 23:43 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
не вижу смысла использования другой микросхемы

_________________
https://vk.com/ledscale - платы, vk.com/ledscale3dprintig - 3Д печать\моделирование, vk.com/ledrenovation- ремонт светодиодных источников света


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


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

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO