тут
roboforum.ruТехнический форум по робототехнике. |
|
|
|
Реклама | ||||
|
|
|||
Реклама | ||||
|
|
|||
Это символ Form Feed - в принтерах означал перемотку бумаги до следующей страницы. Для перехода на новую строку надо 0x0A [chr(10), Line Feed], 0x0D [chr(13), Carridge Return] или 0x0A 0x0D - зависит от настроек терминалаgalex1981 писал(а):Строчка Print Chr(12) означает перевод на другую строку в терминале
А в целом фиг бы с ним, с терминалом, главное, что от пульта бот работает. Всем спасибо за помощь =)
$prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить
$regfile = "m32def.dat" ' файл спецификации Меги32
$crystal = 8000000 ' указываем на какой частоте будем работать
$baud = 9600 ' указываем частоту дла usart (теперь нужно только для отладки программы)
'----------------------------------------------------------------------------
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr
Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход
Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход
'----------------------------------------------------------------------------
Dim Speed As Byte
Speed = 200 ' указываем скорость робота
Config Rc5 = Pind.3
Enable Interrupts
Dim Address As Byte , Command As Byte
Print "Start MiniBot" ' выводим в терминал отладочное сообщение
Do
Gosub Прием_rc5
If Command = 255 Then
Gosub Стоп
Elseif Command = 32 Then
Gosub Прямо
Waitms 100
Elseif Command = 33 Then
Gosub Назад
Waitms 100
Elseif Command = 17 Then
Gosub Влево
Waitms 100
Elseif Command = 16 Then
Gosub Вправо
Waitms 100
End If
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
Влево:
Gosub Стоп : Waitms 10
Drl = 1 : Drr = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return
Вправо:
Gosub Стоп : Waitms 10
Drl = 0 : Drr = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return
Прямо:
Gosub Стоп : Waitms 10
Drl = 0 : Drr = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return
Назад:
Gosub Стоп : Waitms 10
Drl = 1 : Drr = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return
Стоп:
Drl = 0 : Drr = 0 : Pwm1b = 0 : Pwm1a = 0:
Return
'$prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить
$regfile = "m32def.dat" ' файл спецификации Меги32
$crystal = 7372800 ' указываем на какой частоте будем работать
$baud = 115200 ' указываем частоту дла usart (теперь нужно только для отладки программы)
'----------------------------------------------------------------------------
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr
Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход
Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход
'----------------------------------------------------------------------------
Dim Speed As Byte
Speed = 100 ' указываем скорость робота
Config Rc5 = Pind.3
Enable Interrupts
Dim Address As Byte , Command As Byte
Print "Start MiniBot" ' выводим в терминал отладочное сообщение
Do
Gosub Прием_rc5
If Command = 255 Then
Gosub Стоп
Elseif Command = 32 Then
Gosub Прямо
Waitms 100
Elseif Command = 33 Then
Gosub Назад
Waitms 100
Elseif Command = 17 Then
Gosub Влево
Waitms 100
Elseif Command = 16 Then
Gosub Вправо
Waitms 100
End If
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
Влево:
Gosub Стоп : Waitms 10
Drl = 1 : Drr = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return
Вправо:
Gosub Стоп : Waitms 10
Drl = 0 : Drr = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return
Прямо:
Gosub Стоп : Waitms 10
Drl = 0 : Drr = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return
Назад:
Gosub Стоп : Waitms 10
Drl = 1 : Drr = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return
Стоп:
Drl = 0 : Drr = 0 : Pwm1b = 0 : Pwm1a = 0:
Return
Ven-Tures писал(а):2.0
Вернуться в МиниБот — национальный класс роботов
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1