roboforum.ru

Технический форум по робототехнике.
Текущее время: 25 фев 2025, 15:10

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




Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 04 май 2011, 23:27 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
наверняка да.
chinga писал(а):
тада я ниче не буду видеть)
светодиоды уже сгорели чтоль ? Когда 2 МК соедините TxD ведущего и на ПК подайте для прослушки.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 04 май 2011, 23:33 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
avr123.nm.ru писал(а):
Как читать начнете так и пойдет. Все теже Print и Input

тогда программа бует примерно так? как бы я отправляю через print какую то цифру(для примера номер кнопки)типа так:
для пульта:
Код:
$regfile = "m32def.dat"                                     ' используем ATmega32
$crystal = 16000000                                         ' частота установленного кварца 16 mHz
$baud = 19200                                               ' скорость порта 19200 бит/с.

Dim Qwe As Integer
Dim Ewq As Integer
Qwe = 8
Ewq = 9
Config Portb.1 = Input                                      'кнопка 1
Config Portb.2 = Input                                      'кнопка 2

Do
If Pinb.1 = 1 Then                                          'ввод текста с клавиатуры
Print Qwe
End If

If Pinb.2 = 1 Then
Print Ewq
End If

Loop
End

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

Dim Qwe As Integer
Dim Ewq As Integer
Qwe = 8
Ewq = 9
Config Portc.1 = Output                                       'светодиод 1
Config Portc.2 = Output                                       'светодиод 2

Do
If Input = Qwe Then                                         'ввод текста с клавиатуры
Portc.1 = 1
Else
Portc.0 = 0
End If

If Input = Eqw Then
Portc.2 = 1
Else
Portc.2 = 0
End If

Loop
End

ведь это ж не правильно?

Добавлено спустя 1 минуту 35 секунд:
avr123.nm.ru писал(а):
наверняка да.
chinga писал(а):
тада я ниче не буду видеть)
светодиоды уже сгорели чтоль ? Когда 2 МК соедините TxD ведущего и на ПК подайте для прослушки.

я про это говорю:
Код:
$regfile = "m32def.dat"       ' используем ATmega32
$crystal = 16000000 ' частота установленного кварца 16 mHz
$baud = 19200       ' скорость порта 19200 бит/с.
Dim A As String * 15       'объявляем переменную – строка не более 15 символов
Do
Input "What is your name? " , A       'ввод текста с клавиатуры
Print "Hello! " ; A ' вывод сообщения вместе с ранее введенным текстом
Print               ' вывод пустой строки
Wait 1              ' задержка 1 секунда
Loop
End

вот именно со светодиодами не могу разобраться...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 04 май 2011, 23:49 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Советую делать как в школе - вначале выполните упражнения из учебника, а потом уже творите своё.

Наверняка получится быстрей и ПОЛЕЗНЕЙ,

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 05 май 2011, 00:50 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
из учебника,если вы имеете в виду пример, я уже сделал)
именно эту строчку подскажите где я сравниваю if потом? вот это затрудняет...

Добавлено спустя 5 минут:
вот так будет прием?
Код:
$regfile = "m32def.dat"                                     ' используем ATmega32
$crystal = 16000000                                         ' частота установленного кварца 16 mHz
$baud = 19200                                               ' скорость порта 19200 бит/с.

Dim Qwe As Integer
Dim Ewq As Integer
Qwe = 8
Ewq = 9
Config Portb.1 = Input                                      'кнопка 1
Config Portb.2 = Input                                      'кнопка 2

Config Portc.1 = Output
Config Portc.2 = Output

Dim Q As Integer
Input Q
Do
If Q = 8 Then                                               
Portc.1 = 1
Else
Portc.1 = 0
End If

If Q = 9 Then
Portc.2 = 1
Else
Portc.2 = 0
End If

Loop
End

а вот для робота:
Код:
$regfile = "m32def.dat"                                     ' используем ATmega32
$crystal = 16000000                                         ' частота установленного кварца 16 mHz
$baud = 19200                                               ' скорость порта 19200 бит/с.
Dim A As String * 15                                        'объявляем переменную – строка не более 15 символов
Dim Qwe As Integer
Dim Ewq As Integer
Qwe = 8
Ewq = 9
Config Pinb.1 = Input
Config Pinb.2 = Input

Do
If Pinb.1 = 1 Then
Print Qwe
End If

If Pinb.2 = 1 Then
Print Ewq
End If

Loop
End



программа компилируется)но правильно ли?)

Добавлено спустя 46 минут 16 секунд:
светодиод гонит( точнее я в протеусе смарел передающую проводку, от первого МК это трансивер через осцилограф, када нажимаю кнопку один раз, там график цифрового сигнала, и потом хоть и отпускай хоть и нажимай другую юкнопку не меняется, и на 2МК тож, по программе загорается светодиод и больше ниче не делает( почему?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 05 май 2011, 09:01 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
в PROTEUS есть терминал, подключите его и смотрите какие данные передаются.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 05 май 2011, 12:49 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
вот через терминал посмарел как работает первая программа,хелло то сё) выводиться ентер ё нейим, потом вводишь и интер и больше ничего нету) ну в смысле дальше не идет программа...

Добавлено спустя 1 час 19 минут 8 секунд:
можете подсказать,почему на кнопках начинает гнать? или цифры отправлять не выгодно?
вот как бы прога
это от пульта
Код:
$regfile = "m32def.dat"                                     ' используем ATmega32
$crystal = 8000000                                          ' частота установленного кварца 16 mHz
$baud = 9600                                                ' скорость порта 19200 бит/с.
Dim A As String * 15                                        'объявляем переменную – строка не более 15 символов
Dim Qwe As Integer
Dim Asd As Integer
Dim Ewq As Integer
Qwe = 8
Ewq = 9
Asd = 7
Config Pinb.1 = Input
Config Pinb.0 = Input
Config Pinb.2 = Input
Pinb.1 = 0
Pinb.2 = 0
Pinb.0 = 0

Do
Select Case 1
  Case Pinb.0 : Print 7
  Case Pinb.1 : Print 8
  Case Pinb.2 : Print 9
  Case Else Print
End Select

Loop
End


вот на робота должен стоять
Код:
$regfile = "m32def.dat"                                     ' используем ATmega32
$crystal = 8000000                                          ' частота установленного кварца 16 mHz
$baud = 9600                                                ' скорость порта 19200 бит/с.

Dim Qwe As Integer
Dim Ewq As Integer
Dim Asd As Integer
Qwe = 8
Ewq = 9
Asd = 7
'Config Portb.1 = Input                                      'кнопка 1
'Config Portb.2 = Input                                      'кнопка 2

Config Portc.1 = Output
Config Portc.2 = Output

Dim Q As Integer

Do

Input Q

Select Case Q
  Case 8 : Portc.1 = 1
  Case 9 : Portc.2 = 1
  Case 7 : Portc.1 = 0
            Portc.2 = 0
End Select



Loop
End

вот када передал данные, для пример 8ку отправил и оно отправляется отправляется,вопрос, как остановить? я пробывал и пустой принт выводить,не выходит...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 05 май 2011, 12:57 
Не в сети
Аватара пользователя

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

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 05 май 2011, 13:10 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
так в чем моя ошибка тут?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 05 май 2011, 13:26 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Вообще chinga хочет узнать, как в бейсике обмениваться данными через уарт не в ascii, а в бинарном виде. Но он еще не знает, что он об этом спрашивает :)
chinga, если знаешь C++ - так и делай на C++! А вернее на C. Там все довольно просто - объявляешь свои функции приема и передачи символа и дальше пользуешься стандартными fread/fwrite для бинарных данных и printf/scanf для текста. Это касается avr-libc, которой WinAVR пользуется, про другие среды не знаю.

И вообще дело не в языке, тебе для начала нужно определиться с протоколом обмена - какие данные будут передаваться, как принимающая сторона будет отличать один блок данных от другого - по времени? по специальным кодам-маркерам начала и конца? Ну и все такое, это ж оба твоих устройства, тебе и придумывать протокол.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 05 май 2011, 19:17 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
boez писал(а):
Но он еще не знает, что он об этом спрашивает :)

:D
а можете пример программы на С показать,что б понятней было)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 07 май 2011, 02:19 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
хотел вот как тут сделать)http://www.youtube.com/watch?v=yr4VMvDZ_pE
но вместо кнопок один и два,три, у меня w,a,s,d) светодиодами переключает.
вот там можно сразу и с компа и с мк передавать сигналы, а у меня или с компа или с МК,то есть над каждый раз прошивать када бушь думать с какого отправлять,помогите)
на порте А кнопки у меня.
Код:
#include <mega32.h>
#include <delay.h>
#include <stdio.h>


void main(void){

char asd;
   
PORTB=0x00;
DDRB=0xFF;

   
PORTA=0xFF;
DDRA=0;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;



while (1){
    char buf=PINA;


scanf("%c\0", &asd);

switch(asd){

    case 'w': PORTB = 0b00000001;
              delay_ms(50);   
              printf("%c\r\n\0", asd);
              break;
    case 's': PORTB = 0b00000100;
              delay_ms(50);
              printf("%c\r\n\0", asd);
              break;
    case 'a': PORTB = 0b00010000;
              delay_ms(50);         
              printf("%c\r\n\0", asd);
              break;
    case 'd': PORTB = 0b01000000;
              delay_ms(50);         
              printf("%c\r\n\0", asd);
              break;
    default: PORTB = 0b00000000;
             break;
}



    delay_ms(150);
    if(buf!=PINA) buf=PINA;
    switch(buf){
    case 0b11111110 : printf("0 button\r\n\0"); break;
    case 0b11111101 : printf("1 button\r\n\0"); break;
   case 0b11111011 : printf("2 button\r\n\0"); break;
    default: break;
    }           

    // Place your code here

    }
}


Вложения:
Комментарий к файлу: вот схема
proteus.JPG
proteus.JPG [ 134.09 КиБ | Просмотров: 1574 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 07 май 2011, 15:36 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
где и что я пропустил7


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 08 май 2011, 23:27 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
вот терь все вроде пашет)) но терь не могу сделать так что б када нажимаю кнопку что б к увеличивалась...
делаю в начале
int k;
k = 0;

if(PIND.2 == 0){
k++;
delay_ms(200);
printf("%d\r\n\0", k);
}

и выводит тока 1 и все) 1 за 1 и так далее,почему не увеличивается?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 05 авг 2011, 23:34 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
я вроде разобрался, и теперь не могу проверить, теперь такой вопрос:
с какого терминала отправлять? я с Баскома отправляю, другие символы выводит, а в Протеусе все пашет, может быть от терминала?
еще, юарт подключен к 1 ком порту, а на баскоме видит как 2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: mc-rs232-mc
СообщениеДобавлено: 07 авг 2011, 22:49 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
почему то какие то иероглифы выводит, почему? везде скорость поставил 9600, и программа от сюда? но я там скорость изменил на 9600 http://robozone.su/2008/07/16/bascom-av ... herez.html ... юзб юарт преобразователь мастеркитовский BA8050. в протеусе все работает, а вот в реале какие то иероглифы и все...


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

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


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

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


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

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